@import url('./design-tokens.css');
:root{font-family:var(--sw6-font);color:var(--sw6-ink);background:var(--sw6-backdrop);font-synthesis:none;--ink:var(--sw6-ink);--line:var(--sw6-line);--muted:var(--sw6-muted)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:.2em}button{font:inherit;color:inherit;cursor:pointer}summary{cursor:pointer}[hidden]{display:none!important}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}h1:focus,h2:focus,h3:focus,main:focus{outline:none}h1,h2,h3,p{margin-top:0}p{font-size:1rem;line-height:1.55;margin-bottom:1rem}h1,h2,h3{letter-spacing:-.045em;line-height:1.08;font-weight:600;overflow-wrap:anywhere}h1{font-size:clamp(3rem,6vw,7rem);margin-bottom:2rem}h2{font-size:clamp(2rem,4vw,4.8rem);margin-bottom:1.5rem}h3{font-size:1.6rem}.section-label{font-size:.8rem;font-weight:650;text-transform:uppercase;letter-spacing:.16em;margin-bottom:1rem}.lead{font-size:clamp(1.15rem,1.4vw,1.5rem);line-height:1.45}.section-head{margin-bottom:1.5rem}.section-lead{max-width:65ch}
.interface-shell{background:rgb(250 249 243 / .88);border:1px solid #ffffff80;border-radius:20px;margin:1.5vh 2.5vw;min-height:97vh;position:relative}.site-header{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding:1rem 2vw;z-index:30}.wordmark{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-size:1.6rem;font-weight:800;line-height:1}.wordmark img{width:40px;height:40px;filter:grayscale(1)}.brand-small{display:block;font-size:.8rem;letter-spacing:.03em;margin-top:.25rem}.button,.header-contact,.menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:44px;padding:.65rem 1rem;border:1px solid var(--line);border-radius:8px;background:transparent;text-decoration:none;font-weight:600;font-size:.9rem}.button:hover,.header-contact:hover,.menu-toggle:hover,.story-controls a:hover{background:#383b380a}.action-arrow{font-size:1.2rem}.menu-toggle{display:none}.skip-link{position:fixed;top:-5rem;left:1rem;padding:1rem;background:#faf9f3;z-index:100}.skip-link:focus{top:1rem}#main-nav{position:relative;display:flex;gap:.2rem;padding:.3rem}#main-nav a{padding:.7rem .8rem;text-decoration:none;font-size:.85rem;white-space:nowrap;border-radius:6px}#main-nav a[aria-current=page]{font-weight:700;box-shadow:inset 0 -2px var(--ink)}.dock-indicator{display:none!important}.content-panel{padding:1.5rem 2.5vw;max-width:none;margin:auto}.hero-bottom{display:grid;grid-template-columns:1.15fr 1fr;gap:6vw}.hero-intro .lead{font-size:clamp(1.2rem,1.8vw,1.9rem);font-weight:550}.service-statement{font-weight:650}.hero-invitation p{font-size:1.05rem}.hero-invitation .button{margin-top:.5rem}
.journey{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;list-style:none;padding:0;margin:0}.journey li{border-top:1px solid var(--line);padding-top:1rem}.step-number{display:block;font-size:2.5rem;color:var(--muted);margin-bottom:1.5rem}.step-line{display:none}.journey h3{font-size:1.8rem}.journey p{margin-bottom:0}.prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}.price-card{position:relative;border-top:1px solid var(--line);padding-top:1rem}.card-index{display:block;font-size:.8rem;color:var(--muted);margin-bottom:1.5rem}.prices dt{font-size:.95rem;margin-bottom:.8rem}.prices dd{font-size:clamp(2rem,3.5vw,4rem);letter-spacing:-.06em;margin:0}.pricing-bottom{display:flex;justify-content:space-between;gap:2rem;align-items:start;margin-top:2rem}.pricing-notes{max-width:65ch}.pricing-notes p,.text-link{font-size:.9rem}.together-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}.direct-statement .lead{font-size:clamp(1.5rem,2.5vw,2.6rem)}.button{max-width:100%;overflow-wrap:anywhere}
.story{border-top:1px solid var(--line);padding-top:.7rem}.story-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.sector{font-size:.8rem;font-weight:600;color:var(--muted)}.story-controls{display:flex;gap:1rem;align-items:center;font-size:.8rem}.story-controls a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;border-radius:5px;padding:0 .3rem}.story-controls span{font-variant-numeric:tabular-nums;color:var(--muted)}.story h3{font-size:clamp(1.6rem,2.6vw,3rem);margin-bottom:.7rem}.story-lead{font-size:1.05rem;line-height:1.45;max-width:95ch;margin-bottom:1.2rem;font-weight:550}.story-narrative{columns:2;column-gap:2.5rem;column-rule:1px solid var(--line)}.story-narrative p{font-size:1rem;line-height:1.5;orphans:3;widows:3}.story-narrative p:last-child{margin-bottom:0}
.site-footer{display:flex;justify-content:space-between;align-items:center;padding:.5rem 2vw;min-height:58px;font-size:.8rem;z-index:25}.overview-link{text-decoration:none;font-weight:600}.footer-brand{display:none}.policies summary{min-height:44px;display:flex;align-items:center;font-weight:600}.policies summary:before{content:'＋';margin-right:.5rem}.policies[open] summary:before{content:'−'}.policies nav{position:absolute;bottom:4rem;right:2vw;width:23rem;max-width:86vw;max-height:65svh;overflow:auto;padding:1rem 1.5rem;background:#faf9f3;border:1px solid var(--line);border-radius:12px}.policies nav a{display:block;padding:.6rem 0}.policy-about,.copyright{border-bottom:1px solid var(--line);padding:.5rem 0}.policy-about p,.copyright{font-size:.8rem}.city-frame{display:none}#scene{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:pan-y}#error{position:absolute;bottom:1rem;right:3vw;font-size:.8rem;padding:.5rem;background:#faf9f3;max-width:90vw}.city-failed #scene{visibility:hidden}
body.enhanced{isolation:isolate;height:100svh;overflow:hidden}.enhanced .city-frame{display:block;position:fixed;inset:0;z-index:-1}.enhanced .interface-shell{height:97svh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;transition:opacity .15s ease}.enhanced .experience{min-height:0;position:relative;display:flex;align-items:center}.enhanced #main-content{width:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-width:0}.enhanced .content-panel{width:100%}.enhanced #scroll-hint{position:absolute;right:2.5vw;bottom:0;font-size:.75rem;pointer-events:none}.enhanced.is-travelling .interface-shell{opacity:0;pointer-events:none}.enhanced.is-arriving .content-panel{animation:arrive .35s ease both}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.enhanced .menu-toggle{display:flex;margin-left:auto}.enhanced #main-nav{display:none}.enhanced #main-nav.is-open{display:flex;position:absolute;top:100%;left:0;right:0;justify-content:center;flex-wrap:wrap;background:#faf9f3;border-bottom:1px solid var(--line)}.site-header{position:relative}.journey{grid-template-columns:1fr 1fr;gap:1.5rem}.step-number{font-size:2rem;margin-bottom:.7rem}.prices dd{font-size:2.5rem}.pricing-bottom{flex-wrap:wrap}.story-narrative{column-gap:1.5rem}.story-narrative p{font-size:1rem;line-height:1.42}.content-panel{padding:1rem 2.5vw}.story-lead{margin-bottom:.8rem}.story-top{margin-bottom:.5rem}.story-controls{gap:.6rem}}
@media(max-width:700px){.interface-shell{margin:1vh 2vw;border-radius:14px}.enhanced .interface-shell{height:98svh}.site-header{padding:.7rem 3vw;gap:.5rem}.wordmark{font-size:1.2rem;gap:.35rem}.wordmark img{width:30px;height:30px}.brand-small{font-size:.7rem}.menu-toggle,.header-contact{padding:.5rem .6rem;font-size:.8rem}.header-contact .action-arrow{display:none}.content-panel{padding:1rem 4vw}.hero-bottom,.together-grid,.prices{grid-template-columns:1fr;gap:1.25rem}h1{font-size:clamp(2.5rem,9vw,4rem)}h2{font-size:2rem}.story-top{align-items:flex-start;flex-direction:column;gap:.2rem}.story-controls{width:100%;justify-content:space-between}.story-narrative{columns:1}.story-narrative p{line-height:1.55}.story h3{font-size:1.7rem}.story-lead{font-size:1rem}.site-footer{padding:.4rem 3vw;gap:.5rem;font-size:.75rem}.enhanced .experience{align-items:flex-start}.journey{gap:1rem}.journey h3{font-size:1.4rem}.pricing-bottom{margin-top:1rem}.prices dd{font-size:2.5rem}.card-index{margin-bottom:.7rem}.story{margin-bottom:1rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
body:not(.enhanced) .content-panel{border-bottom:1px solid var(--line)}body:not(.enhanced) .story{margin-bottom:3rem}
/* Story directory and single-column reader share the section's reading surface. */
.story-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2rem}
.story-list a{position:relative;display:flex;flex-direction:column;justify-content:center;gap:.3rem;min-height:66px;padding:.65rem 1.5rem .65rem 0;border-top:1px solid var(--line);text-decoration:none;transition:color .2s,transform .2s}
.story-list strong{font-size:.95rem;line-height:1.25;font-weight:600;letter-spacing:-.015em}.story-list .sector{font-size:.72rem}.listing-arrow{position:absolute;right:0;top:50%;transform:translateY(-50%);transition:transform .2s}.story-list a:hover .listing-arrow{transform:translate(3px,-60%)}
.story{position:relative;padding:1rem 64px 0}.story-copy{min-width:0}.story-top{margin-bottom:.6rem}.all-stories{display:inline-flex;align-items:center;min-height:40px;padding:.4rem .85rem;border:1px solid var(--line);border-radius:24px;text-decoration:none;font-size:.8rem;font-weight:600}.all-stories:hover{background:#383b380a}.story-narrative{columns:1;column-rule:none;max-width:none}.story-narrative p{line-height:1.5;margin-bottom:.8rem}.story-lead{max-width:none}.story-arrow{position:absolute;top:50%;display:flex;align-items:center;justify-content:center;width:48px;height:64px;border:1px solid var(--line);border-radius:30px;text-decoration:none;font-size:1.7rem;transition:transform .2s,background .2s,border-color .2s}.story-arrow:hover{background:#383b380a;border-color:var(--ink);transform:translateY(-2px)}.story-arrow:active{transform:scale(.95)}.story-previous{left:0}.story-next{right:0}
@media(max-width:1100px){.story-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem}.story{padding-left:54px;padding-right:54px}.story-arrow{width:42px;height:58px}}
@media(max-width:700px){.story-list{grid-template-columns:1fr}.story-list a{min-height:72px}.story{padding:0 0 60px}.story-top{flex-direction:row;align-items:center}.story-arrow{position:absolute;top:auto;bottom:0;width:48px;height:48px}.story-copy .story-top{position:relative}.story-copy .all-stories{flex-shrink:0}.story-narrative p{line-height:1.55}}

/* Keep the overflow cue legible when it overlaps the final visible text line. */
.enhanced #scroll-hint{background:rgb(250 249 243 / .94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:8px;padding:.4rem .65rem;z-index:10}

/* Paper stays over the drawing only; labels and controls remain crisp. */
#scene{isolation:isolate}#scene::after{content:"";position:absolute;inset:0;pointer-events:none;background:url("/paper-grain.svg") repeat;opacity:.035;mix-blend-mode:multiply;z-index:1}

/* Policies stay at the right edge when the overview return link is hidden. */
.site-footer .policies{margin-left:auto}

/* Contact methods are independent choices, each with one generous link target. */
#contact .section-head{margin-bottom:1.35rem}
#contact h2{margin-bottom:1rem}
#contact .section-lead{max-width:62ch;margin-bottom:0}
.contact-choice-label{font-size:.9rem;font-weight:600;margin-bottom:.8rem}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.contact-option{display:flex;flex-direction:column;min-width:0;padding:1.4rem;border:1px solid #383b3838;border-radius:12px;background:rgb(250 249 243 / .72);text-decoration:none;transition:background .18s,border-color .18s,box-shadow .18s}
.contact-channel{font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.9rem}
.contact-option h3{font-size:clamp(1.35rem,2vw,1.8rem);margin-bottom:.8rem;line-height:1.15}
.contact-option p{font-size:.92rem;line-height:1.55;margin-bottom:1.4rem}
.contact-action{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;margin-top:auto;padding:.65rem .85rem;border:1px solid #383b3855;border-radius:7px;font-size:.86rem;font-weight:650;background:#faf9f3}
.contact-action span{font-size:1.2rem;transition:transform .18s}
.contact-option:hover,.contact-option:focus-visible{background:#faf9f3;border-color:var(--ink);box-shadow:0 4px 14px #383b380a}
.contact-option:hover .contact-action,.contact-option:focus-visible .contact-action{background:var(--ink);color:#faf9f3;border-color:var(--ink)}
.contact-option:hover .contact-action span{transform:translateX(3px)}
.contact-option:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.contact-terms{font-size:.8rem;line-height:1.55;color:var(--muted);max-width:100ch;margin:1.1rem 0 0}
.contact-terms strong{font-weight:650;color:var(--ink)}
@media(max-width:1000px){.contact-option{padding:1.1rem}.contact-grid{gap:.75rem}}
@media(max-width:700px){#contact .section-head{margin-bottom:1.1rem}.contact-grid{grid-template-columns:1fr;gap:.8rem}.contact-option{padding:1.1rem}.contact-channel{margin-bottom:.5rem}.contact-option h3{font-size:1.5rem;margin-bottom:.6rem}.contact-option p{margin-bottom:.9rem}.contact-terms{margin-top:1rem}}

/* Keep the story label and return link on separate lines on small screens. */
@media(max-width:700px){.story-copy .story-top{flex-direction:column;align-items:flex-start;gap:.65rem;padding:.8rem 0 .35rem}.story-copy .all-stories{min-height:44px;white-space:nowrap}}
