:root{
  --ivory:#f3f0e7;--oat:#e8e2d6;--sand:#d9cebd;--stone:#b7ada0;--taupe:#8d8377;
  --graphite:#282825;--ink:#171714;--muted:#6e6a63;--white:#fbfaf6;--line:rgba(31,30,26,.11);
  --glass:rgba(247,244,237,.91);--shadow:0 18px 52px rgba(46,40,31,.12);--soft:0 8px 26px rgba(46,40,31,.08);
  --one:#b59d78;--echelon:#353532;--danger:#8e5c55;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;background:var(--ivory);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif}
body{overflow:hidden}
button,input,textarea,select{font:inherit}
button{cursor:pointer;color:inherit}
a{color:inherit}
#app,#map{position:absolute;inset:0}
#map{background:#d8d5cc}
.maplibregl-canvas{filter:saturate(.58) sepia(.08) contrast(.94) brightness(1.04);outline:0}
.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{z-index:8}
.maplibregl-ctrl-attrib{font-size:7px!important;background:rgba(246,243,235,.76)!important;color:#6c675e!important}
.maplibregl-ctrl-attrib a{color:#6c675e!important}

.world-intro{position:fixed;z-index:80;inset:0;background:linear-gradient(150deg,#efe9de,#f7f4ec 56%,#ddd4c6);display:grid;place-items:center;transition:opacity .65s ease,visibility .65s ease}
.world-intro.hidden{opacity:0;visibility:hidden;pointer-events:none}
.orbit-stage{position:relative;width:min(610px,88vw);height:min(610px,88vw);max-height:72vh;display:grid;place-items:center}
.orbit-sphere{width:min(260px,45vw);aspect-ratio:1;border-radius:50%;background:
 radial-gradient(circle at 34% 27%,rgba(255,255,255,.94),rgba(237,232,221,.92) 28%,rgba(196,185,169,.82) 61%,rgba(149,139,125,.82) 100%);
 box-shadow:inset -30px -40px 70px rgba(108,95,78,.18),inset 24px 22px 46px rgba(255,255,255,.52),0 36px 80px rgba(82,69,52,.15);
 position:relative;animation:introFloat 4s ease-in-out infinite}
.orbit-sphere:after{content:"";position:absolute;inset:20%;border:1px solid rgba(85,77,67,.17);border-radius:50%;transform:rotate(28deg) scaleY(.42)}
.orbit-word{position:absolute;font-size:9px;letter-spacing:.22em;font-weight:750;color:#6d675f}
.orbit-word.w1{top:7%;left:50%;transform:translateX(-50%)}.orbit-word.w2{top:25%;right:2%}.orbit-word.w3{right:1%;bottom:26%}
.orbit-word.w4{bottom:8%;left:50%;transform:translateX(-50%)}.orbit-word.w5{left:1%;bottom:28%}.orbit-word.w6{left:1%;top:26%}
.orbit-title{position:absolute;bottom:-3%;text-align:center;width:100%}.orbit-title b{display:block;font-size:11px;letter-spacing:.2em}.orbit-title span{display:block;margin-top:8px;font:400 clamp(24px,4vw,42px)/1.05 Georgia,"Times New Roman",serif;color:#393833}
@keyframes introFloat{50%{transform:translateY(-7px) scale(1.015)}}
@media(prefers-reduced-motion:reduce){.orbit-sphere{animation:none}.world-intro{transition:none}}

.topbar{position:absolute;z-index:30;left:18px;right:18px;top:18px;height:68px;display:flex;align-items:center;gap:12px;padding:9px 10px;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:var(--glass);backdrop-filter:blur(26px);box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:11px;min-width:260px;padding-right:10px}
.brand-mark{width:46px;height:46px;border-radius:15px;background:var(--graphite);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:850;letter-spacing:.12em}
.brand-copy b{display:block;font-size:11px;letter-spacing:.16em}.brand-copy span{display:block;margin-top:4px;font-size:10px;color:var(--muted)}
.search{position:relative;flex:1}
.search input{width:100%;height:48px;border:1px solid var(--line);outline:0;background:rgba(255,255,255,.72);border-radius:15px;padding:0 42px 0 15px;font-size:13px;color:var(--ink)}
.search svg{position:absolute;right:14px;top:14px;width:19px;color:#747068}
.top-actions{display:flex;align-items:center;gap:7px}
.top-btn{height:46px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 13px;font-size:9px;font-weight:800;letter-spacing:.08em;white-space:nowrap}
.top-btn.primary{background:var(--graphite);border-color:var(--graphite);color:#fff}
.member-pill{height:46px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 11px}
.member-pill .dot{width:8px;height:8px;border-radius:50%;background:#beb9ae}
.member-pill.one .dot{background:var(--one);box-shadow:0 0 0 4px rgba(181,157,120,.15)}
.member-pill.echelon{background:#343431;color:#fff;border-color:#343431}.member-pill.echelon .dot{background:#d6c8b5;box-shadow:0 0 0 4px rgba(214,200,181,.11)}
.member-pill span{font-size:9px;font-weight:800;letter-spacing:.08em}

.hero-copy{position:absolute;z-index:22;left:22px;top:108px;max-width:470px;padding:16px 18px;border-radius:20px;background:rgba(247,244,237,.87);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.66);box-shadow:var(--soft)}
.hero-copy .ey{font-size:8px;letter-spacing:.2em;font-weight:850;color:#787168}.hero-copy h1{margin:7px 0 7px;font:500 clamp(25px,3vw,42px)/.98 Georgia,"Times New Roman",serif;letter-spacing:-.035em}.hero-copy p{margin:0;color:#6f6a62;font-size:11px;line-height:1.5}

.intent-bar{position:absolute;z-index:28;left:22px;right:22px;top:225px;display:flex;gap:7px;align-items:center;overflow-x:auto;scrollbar-width:none;padding-bottom:5px}.intent-bar::-webkit-scrollbar{display:none}
.intent{height:37px;padding:0 14px;border:1px solid rgba(38,35,31,.1);border-radius:999px;background:rgba(251,249,244,.92);box-shadow:var(--soft);font-size:9px;font-weight:800;letter-spacing:.08em;color:#5d5952;white-space:nowrap}
.intent.active{background:#2d2d2a;color:#fff;border-color:#2d2d2a}.intent.near{margin-left:auto;background:#ede7db}.intent.near.active{background:#b6a384;color:#fff}
.near-summary{position:absolute;z-index:27;left:22px;top:270px;max-width:270px;padding:9px 11px;border-radius:13px;background:rgba(249,246,239,.94);box-shadow:var(--soft);font-size:9px;color:#655f57;display:none}.near-summary.open{display:block}

.side-panel{position:absolute;z-index:26;right:18px;top:108px;bottom:18px;width:355px;background:rgba(247,244,237,.94);backdrop-filter:blur(28px);border:1px solid rgba(255,255,255,.7);border-radius:25px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.side-head{padding:18px 17px 13px;border-bottom:1px solid var(--line)}.side-head .ey{font-size:8px;letter-spacing:.18em;font-weight:800;color:#746f68}.side-head h2{margin:7px 0 5px;font-size:24px;line-height:1;letter-spacing:-.04em}.side-head p{margin:0;font-size:10px;color:var(--muted);line-height:1.45}
.side-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:9px 10px;border-bottom:1px solid var(--line)}.side-tabs button{height:34px;border:0;border-radius:11px;background:transparent;font-size:8px;color:#736f68}.side-tabs button.active{background:#2f2f2b;color:#fff}
.side-body{padding:12px 13px 16px;overflow:auto}
.section-row{display:flex;justify-content:space-between;align-items:center;margin:1px 2px 9px}.section-row b{font-size:11px}.section-row span{font-size:8px;color:#817b72;letter-spacing:.08em;text-transform:uppercase}
.place-list,.event-list,.moment-list,.passport-list{display:grid;gap:8px}
.place-card{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff;transition:.15s}
.place-card:hover{transform:translateY(-1px);box-shadow:var(--soft)}
.place-symbol{width:44px;height:44px;border-radius:14px;background:#ece8df;display:grid;place-items:center;font-size:12px;font-weight:850;letter-spacing:.04em}.place-symbol.one{background:#cab99f;color:#fff}.place-symbol.echelon{background:#373733;color:#fff}.place-copy{min-width:0}.place-copy b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.place-copy p{margin:4px 0 0;font-size:9px;color:#777167;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.place-card .arrow{font-size:18px;color:#aaa399}
.locked-card{padding:17px;border:1px solid var(--line);border-radius:18px;background:#efebe2}.locked-card .ey{font-size:8px;letter-spacing:.17em;font-weight:800;color:#7c7469}.locked-card h3{margin:7px 0 7px;font:500 22px/1.05 Georgia,serif}.locked-card p{margin:0;color:#706a60;font-size:10px;line-height:1.5}.locked-card button{margin-top:12px;height:39px;border:0;border-radius:11px;background:#2f2f2b;color:#fff;padding:0 13px;font-size:9px;font-weight:800}

.map-tools{position:absolute;z-index:26;left:22px;bottom:22px;display:flex;flex-direction:column;border-radius:17px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.76)}
.map-tools button{width:46px;height:44px;border:0;border-bottom:1px solid var(--line);background:rgba(249,247,241,.94);font-size:17px}.map-tools button:last-child{border:0}.map-tools svg{width:19px}
.map-badge{position:absolute;z-index:24;left:78px;bottom:22px;padding:9px 11px;border-radius:12px;background:rgba(247,244,237,.9);backdrop-filter:blur(16px);box-shadow:var(--soft);font-size:8px;letter-spacing:.09em;color:#6e685f}
.map-badge b{color:#2f2f2b}

.poi-wrap{position:relative}.poi{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.92);box-shadow:0 10px 22px rgba(44,37,29,.18);background:#f7f4ed;color:#2a2a27;font-size:9px;font-weight:850;letter-spacing:.04em}
.poi.one{background:#bea987;color:#fff}.poi.echelon{background:#333330;color:#fff;box-shadow:0 0 0 5px rgba(55,55,51,.12),0 10px 22px rgba(44,37,29,.18)}
.poi.komo{background:#867a68;color:#fff}.poi-label{pointer-events:none;position:absolute;left:50%;top:39px;transform:translateX(-50%);white-space:nowrap;border:1px solid var(--line);background:rgba(249,247,241,.96);border-radius:8px;padding:4px 6px;font-size:7px;font-weight:750;color:#58544e;box-shadow:var(--soft);opacity:0;transition:.15s}.poi-wrap:hover .poi-label{opacity:1}

.detail-sheet,.modal-shell{position:fixed;z-index:60;inset:0;pointer-events:none}.detail-sheet.open,.modal-shell.open{pointer-events:auto}
.sheet-backdrop{position:absolute;inset:0;background:rgba(37,34,29,.2);backdrop-filter:blur(2px);opacity:0;transition:.18s}.open .sheet-backdrop{opacity:1}
.detail-card{position:absolute;right:18px;bottom:18px;width:380px;max-height:calc(100vh - 36px);background:#f7f4ed;border:1px solid rgba(255,255,255,.72);border-radius:28px;box-shadow:0 28px 80px rgba(43,36,28,.22);overflow:hidden;transform:translateX(110%);transition:.24s ease}.open .detail-card{transform:none}
.detail-cover{padding:20px 18px 18px;min-height:145px;background:linear-gradient(145deg,#d8cdbd,#eee8de);position:relative}.detail-cover.one{background:linear-gradient(145deg,#bfa989,#e3d8c8)}.detail-cover.echelon{background:linear-gradient(145deg,#373733,#777069);color:#fff}
.close-btn{position:absolute;right:13px;top:13px;width:34px;height:34px;border:0;border-radius:11px;background:rgba(255,255,255,.4);font-size:18px}.detail-cover.echelon .close-btn{background:rgba(255,255,255,.12);color:#fff}
.detail-cover .ey{font-size:8px;letter-spacing:.18em;font-weight:850;opacity:.72}.detail-cover h2{margin:12px 40px 6px 0;font:500 29px/1 Georgia,serif;letter-spacing:-.04em}.detail-cover p{margin:0;font-size:10px;opacity:.72}
.detail-body{padding:16px;max-height:calc(100vh - 180px);overflow:auto}.why{padding:14px;border-radius:16px;background:#ece8df}.why .ey{font-size:8px;letter-spacing:.16em;font-weight:850;color:#756e65}.why p{margin:7px 0 0;font-size:11px;line-height:1.55;color:#5e5952}.access-block{margin-top:11px;padding:13px;border:1px solid var(--line);border-radius:15px;background:#fff}.access-block b{font-size:9px;letter-spacing:.09em}.access-block p{margin:6px 0 0;font-size:10px;color:#726c63}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}.action-grid button,.action-grid a{height:43px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;display:grid;place-items:center;font-size:9px;font-weight:850;letter-spacing:.05em}.action-grid .primary{grid-column:1/-1;background:#2f2f2b;color:#fff;border-color:#2f2f2b}.action-grid .echelon{background:#373733;color:#fff}

.modal-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-46%) scale(.98);width:min(520px,calc(100vw - 28px));max-height:86vh;overflow:auto;background:#f7f4ed;border:1px solid rgba(255,255,255,.76);border-radius:28px;box-shadow:0 30px 90px rgba(43,36,28,.25);padding:20px;opacity:0;transition:.2s}.open .modal-card{opacity:1;transform:translate(-50%,-50%) scale(1)}
.modal-card .modal-close{float:right;width:34px;height:34px;border:0;border-radius:11px;background:#e9e4da;font-size:18px}.modal-card .ey{font-size:8px;letter-spacing:.18em;font-weight:850;color:#7a7369}.modal-card h2{font:500 30px/1 Georgia,serif;margin:10px 0 8px}.modal-card>p{font-size:11px;color:#6e685f;line-height:1.55}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field span{font-size:8px;font-weight:800;letter-spacing:.07em;color:#69645c}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;padding:11px 12px;outline:0;font-size:11px;color:var(--ink)}.field textarea{min-height:100px;resize:vertical}
.form-submit{grid-column:1/-1;height:44px;border:0;border-radius:13px;background:#2f2f2b;color:#fff;font-size:9px;font-weight:850;letter-spacing:.08em}.form-note{grid-column:1/-1;font-size:9px;color:#746e65;line-height:1.45}

.digital-card{min-height:205px;border-radius:24px;padding:18px;background:linear-gradient(135deg,#d9c9af,#eee5d6 58%,#c2ae8d);box-shadow:0 22px 44px rgba(75,60,42,.18);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.digital-card.echelon{background:linear-gradient(135deg,#292927,#4a4844 58%,#77716a);color:#fff}
.digital-card:after{content:"";position:absolute;width:210px;height:210px;border:1px solid rgba(255,255,255,.26);border-radius:50%;right:-77px;top:-79px}.digital-card small{font-size:8px;letter-spacing:.18em}.digital-card strong{font-size:25px;letter-spacing:.16em}.digital-card .card-foot{display:flex;justify-content:space-between;align-items:end}.digital-card .card-name{font-size:11px}.digital-card .nfc{font-size:24px}
.card-actions{display:grid;gap:8px;margin-top:10px}.card-actions button{height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:9px;font-weight:850}.card-actions .primary{background:#2f2f2b;color:#fff;border-color:#2f2f2b}
.pulse-bridge{margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:17px;background:#fff}.pulse-bridge .ey{font-size:8px;letter-spacing:.15em;font-weight:850;color:#7b756b}.pulse-bridge b{display:block;margin-top:7px;font-size:11px}.pulse-bridge a{display:inline-block;margin-top:8px;font-size:9px;font-weight:850;text-decoration:none}

.event-card,.moment-card,.passport-card{padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}.event-card .ey,.moment-card .ey,.passport-card .ey{font-size:7px;letter-spacing:.14em;color:#80786e;font-weight:800}.event-card b,.moment-card b,.passport-card b{display:block;margin-top:5px;font-size:11px}.event-card p,.moment-card p,.passport-card p{margin:5px 0 0;font-size:9px;color:#746d64;line-height:1.45}.event-card button{margin-top:8px;height:34px;border:1px solid var(--line);border-radius:10px;background:#f4f1ea;padding:0 10px;font-size:8px;font-weight:800}

.ask-btn{position:absolute;z-index:29;right:390px;bottom:22px;height:46px;padding:0 16px;border:0;border-radius:15px;background:#343431;color:#fff;box-shadow:var(--shadow);font-size:9px;font-weight:850;letter-spacing:.08em;display:none}.ask-btn.visible{display:block}
.founding{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:1px solid rgba(255,255,255,.24);border-radius:999px;font-size:7px;letter-spacing:.12em}

.mobile-nav{display:none}
.mobile-sheet-handle{display:none}
.toast{position:fixed;z-index:100;left:50%;bottom:22px;transform:translate(-50%,16px);padding:10px 13px;border-radius:12px;background:#302f2c;color:#fff;font-size:9px;opacity:0;pointer-events:none;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}
.empty{padding:18px;border:1px dashed rgba(40,37,32,.16);border-radius:17px;text-align:center;color:#766f65;font-size:10px;line-height:1.5}

@media(max-width:1050px){
 .brand{min-width:auto}.brand-copy span{display:none}.side-panel{width:325px}.ask-btn{right:360px}.hero-copy{max-width:400px}.topbar{right:12px;left:12px}
}
@media(max-width:820px){
 body{height:100dvh}.topbar{top:max(9px,env(safe-area-inset-top));left:9px;right:9px;height:62px;border-radius:21px;padding:7px 8px;gap:7px}.brand-copy,.top-actions .top-btn{display:none}.brand{padding:0}.brand-mark{width:45px;height:45px}.search input{height:46px;font-size:12px}
 .hero-copy{top:calc(max(9px,env(safe-area-inset-top)) + 72px);left:9px;right:9px;max-width:none;padding:10px 13px;border-radius:17px}.hero-copy h1{font-size:20px;margin:4px 0 4px}.hero-copy p{font-size:9px}.hero-copy .ey{font-size:7px}
 .intent-bar{left:9px;right:9px;top:calc(max(9px,env(safe-area-inset-top)) + 151px);gap:6px}.intent{height:38px;padding:0 13px;font-size:9px}.intent.near{margin-left:0}
 .near-summary{left:9px;top:calc(max(9px,env(safe-area-inset-top)) + 195px)}
 .side-panel{left:8px;right:8px;top:auto;bottom:calc(74px + env(safe-area-inset-bottom));width:auto;height:198px;border-radius:27px}.mobile-sheet-handle{display:block;width:42px;height:5px;border-radius:99px;background:#c8c2b8;margin:8px auto 0}.side-head{padding:5px 13px 8px}.side-head .ey{font-size:7px}.side-head h2{font-size:17px;margin:4px 0}.side-head p{display:none}.side-tabs{display:none}.side-body{padding:7px 10px 10px}.section-row{margin-bottom:6px}
 .place-list,.event-list,.moment-list,.passport-list{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.place-list::-webkit-scrollbar,.event-list::-webkit-scrollbar,.moment-list::-webkit-scrollbar,.passport-list::-webkit-scrollbar{display:none}
 .place-card{min-width:238px;height:66px;padding:8px;grid-template-columns:41px 1fr auto}.place-symbol{width:41px;height:41px}.event-card,.moment-card,.passport-card{min-width:245px}
 .mobile-nav{position:absolute;z-index:35;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));height:58px;border-radius:20px;background:rgba(247,244,237,.96);backdrop-filter:blur(24px);box-shadow:0 -4px 24px rgba(46,40,31,.1);display:grid;grid-template-columns:repeat(5,1fr);padding:5px;border:1px solid rgba(255,255,255,.72)}.mobile-nav button{border:0;background:transparent;border-radius:15px;font-size:8px;letter-spacing:.05em;color:#706b63}.mobile-nav button.active{background:#302f2c;color:#fff}
 .map-tools{left:auto;right:11px;bottom:calc(280px + env(safe-area-inset-bottom))}.map-tools button{width:44px;height:42px}.map-badge{display:none}
 .ask-btn{right:11px;bottom:calc(330px + env(safe-area-inset-bottom));height:43px}
 .detail-card{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:78vh;border-radius:28px;transform:translateY(110%)}.open .detail-card{transform:none}.detail-cover{min-height:128px}.detail-body{max-height:calc(78vh - 128px)}
 .modal-card{top:auto;bottom:calc(8px + env(safe-area-inset-bottom));transform:translate(-50%,110%);width:calc(100vw - 16px);border-radius:28px;max-height:82vh}.open .modal-card{transform:translate(-50%,0)}
 .member-pill{height:45px;padding:0 10px}.member-pill span{font-size:8px}
 .orbit-stage{max-height:64vh}.orbit-title{bottom:-9%}
}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}.field.full,.form-submit,.form-note{grid-column:auto}.topbar{gap:5px}.member-pill{padding:0 8px}.member-pill span{max-width:72px;overflow:hidden;text-overflow:ellipsis}}

.search-results{position:absolute;left:0;right:0;top:54px;max-height:330px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:16px;background:rgba(251,250,246,.98);box-shadow:var(--shadow)}
.search-results[hidden]{display:none}.search-results button{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;border:0;background:transparent;border-radius:11px;padding:10px;text-align:left}.search-results button:hover{background:#efebe2}.search-results b{font-size:10px}.search-results span{font-size:8px;color:var(--muted);text-align:right}
.preference-grid{display:flex;flex-wrap:wrap;gap:7px}.pref-chip{position:relative}.pref-chip input{position:absolute;opacity:0;pointer-events:none}.pref-chip span{display:flex;align-items:center;height:36px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:8px;font-weight:800;letter-spacing:.05em}.pref-chip input:checked+span{background:#302f2c;color:#fff;border-color:#302f2c}
.quick-asks{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.quick-asks button{height:34px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 11px;font-size:8px;font-weight:800}
@media(max-width:820px){.search-results{top:50px}.search-results button{padding:11px 9px}}
