/* Tervoryn — spatial room-readiness design system */
:root{--paper:#f4f5ef;--white:#fffefa;--ink:#18332f;--muted:#49615a;--line:#a9bcb0;--teal:#23685f;--pale:#dcece2;--mint:#a5d3bf;--apricot:#df8a61;--orange-ink:#823e27;--warm:#fbede2;--soft:#e9eee8;--radius:3px;--max:1320px;font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}a{color:inherit}button{cursor:pointer}svg{max-width:100%}img{max-width:100%}.wrap{width:min(calc(100% - 56px),var(--max));margin-inline:auto}.skip{position:absolute;top:-100px;left:18px;z-index:99;background:var(--ink);color:white;padding:12px}.skip:focus{top:10px}:focus-visible{outline:3px solid var(--orange-ink);outline-offset:4px}header.site-head{border-bottom:1px solid var(--line);background:var(--paper)}.nav-shell{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:22px;font-weight:750;letter-spacing:-.06em;white-space:nowrap}.logo mark{background:none;color:var(--teal)}.door-logo{width:21px;height:27px;display:inline-block;border:2px solid var(--teal);border-bottom:0;position:relative}.door-logo:after{content:"";position:absolute;right:-2px;bottom:0;width:6px;height:13px;background:var(--paper);border-left:2px solid var(--teal)}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{font-size:13px;text-decoration:none;font-weight:600}.nav-links a:hover,.nav-links a[aria-current]{color:var(--teal);text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:7px}.nav-actions{display:flex;align-items:center;gap:14px}.menu-toggle{display:none;background:var(--white);border:1px solid var(--line);padding:11px 16px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;text-decoration:none;border:1px solid var(--teal);background:var(--teal);color:#fff;padding:14px 18px;font-size:13px;font-weight:700;line-height:1.3;border-radius:var(--radius);transition:background .18s,color .18s,transform .18s}.btn:hover{background:var(--ink);transform:translateY(-2px)}.btn.inverse{background:var(--white);color:var(--ink);border-color:var(--white)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.eyebrow{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:750;color:var(--teal);line-height:1.7}.eyebrow:before{content:"";display:inline-block;width:18px;border-top:2px solid currentColor;vertical-align:middle;margin-right:10px}.eyebrow.light{color:#fff}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.5rem,5vw,5.3rem);line-height:1.08;letter-spacing:-.068em;font-weight:650}h2{font-size:clamp(2rem,3.4vw,3.65rem);line-height:1.15;letter-spacing:-.05em;font-weight:630}h3{font-size:1.18rem;line-height:1.35;letter-spacing:-.02em}p{line-height:1.75;color:var(--muted)}.intro{font-size:1.05rem;max-width:560px}.lead{font-size:1.16rem;max-width:600px}.hero{display:grid;grid-template-columns:minmax(300px,5fr) minmax(470px,7fr);align-items:center;gap:6%;padding-block:100px 112px}.hero h1{margin:27px 0 25px}.hero .actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin-top:32px}.text-link{font-size:13px;font-weight:700;text-underline-offset:5px}.hero-art-label{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-family:ui-monospace,monospace;color:var(--muted);letter-spacing:.06em;margin-bottom:11px}.caption{font-size:11px;line-height:1.6;color:var(--muted)}.map-frame{border:1px solid var(--line);background:var(--white);position:relative;overflow:hidden}.floor-svg{display:block;width:100%;height:auto}.floor-svg .room{fill:var(--white);stroke:var(--line);stroke-width:1.6;transition:fill .45s,stroke .45s}.floor-svg .room[data-state="ready"]{fill:var(--pale)}.floor-svg .room[data-state="priority"]{fill:var(--warm);stroke:var(--orange-ink);stroke-width:2.5}.floor-svg .room[data-state="confirmed"]{fill:var(--mint);stroke:var(--teal);stroke-width:2.5}.floor-svg .room[data-selected="true"]{stroke:var(--teal);stroke-width:3}.floor-svg .room-id{font-size:20px;font-weight:700;fill:var(--ink)}.floor-svg .room-status{font:11px ui-monospace,monospace;fill:var(--ink)}.floor-svg .hall{fill:var(--paper);stroke:var(--line)}.floor-svg .route{fill:none;stroke:var(--teal);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;transition:opacity .45s}.floor-svg .route.proposal{stroke:var(--orange-ink);stroke-dasharray:9 6}.floor-svg .room-hit{fill:transparent;cursor:pointer}.floor-svg .room-hit:focus-visible{stroke:var(--orange-ink);stroke-width:4;outline:none}.floor-svg .plan-small{font:11px ui-monospace,monospace;fill:var(--muted)}.legend{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;font-size:11px;color:var(--muted)}.legend b{font-weight:500;color:var(--ink)}.section{padding-block:100px}.section.tint{background:var(--soft);border-block:1px solid var(--line)}.section.paper-line{border-top:1px solid var(--line)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:35px;flex-wrap:wrap;margin-bottom:36px}.section-head h2{max-width:700px;margin:16px 0 0}.section-head p{max-width:360px;margin:0}.scenario-tabs,.switches{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.scenario-tabs button,.switches button{border:1px solid var(--line);background:var(--white);color:var(--ink);padding:12px 14px;font-size:12px;font-weight:650}.scenario-tabs button[aria-pressed="true"],.switches button[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:white}.scenario-tabs button span{font-family:ui-monospace,monospace;margin-right:12px}.workspace-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:24px}.workspace-grid>*{min-width:0}.workspace-aside{background:var(--white);border:1px solid var(--line);padding:26px}.workspace-aside h3{margin:24px 0 12px;font-size:1.35rem}.workspace-aside .micro{border-left:3px solid var(--teal);background:var(--paper);padding:12px 15px;font-size:12px;line-height:1.6;margin-top:22px}.task-list{margin:25px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.task-list li{padding:12px 0;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font:12px ui-monospace,monospace;gap:10px}.task-list li.active{color:var(--orange-ink);font-weight:750}.room-selectors{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.room-selectors button{border:1px solid var(--line);background:var(--white);color:var(--ink);font:12px ui-monospace,monospace;padding:9px 12px;min-height:40px}.room-selectors button[aria-pressed="true"]{border-color:var(--teal);background:var(--pale);font-weight:700}.timeline{background:var(--white);border:1px solid var(--line);padding:44px 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.time-node{border-top:3px solid var(--teal);padding:20px 10px 0 0}.time-node:nth-child(2){border-color:var(--orange-ink)}.time-node h3{margin:28px 0 8px}.time-node p{font-size:13px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.step{border-top:1px solid var(--line);padding-top:18px}.step h3{margin:26px 0 12px}.step p{font-size:13px}.trust-layout,.split{display:grid;grid-template-columns:1fr 1.25fr;gap:10%;align-items:start}.state-row{display:flex;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.state-row .sig{flex:0 0 28px;color:var(--teal);font-size:22px}.state-row p{margin:7px 0 0;font-size:13px}.state-row strong{font-size:11px;letter-spacing:.13em}.cta-band{background:var(--teal);color:white;padding-block:80px}.cta-band p{color:#fff}.cta-inner{display:flex;align-items:end;justify-content:space-between;gap:32px;flex-wrap:wrap}.cta-inner h2{max-width:650px;margin:18px 0}.cta-inner p{max-width:510px;margin-bottom:0}.footer{padding:45px 0;background:var(--paper);border-top:1px solid var(--line)}.footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px}.footer nav{display:flex;gap:14px 25px;flex-wrap:wrap}.footer a{font-size:12px}.footer p{font-size:11px;margin:0}.page-hero{padding:105px 0 85px;border-bottom:1px solid var(--line)}.page-hero h1{max-width:820px;margin:24px 0}.page-hero .intro{margin-bottom:0}.page-hero.split-hero{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.page-hero.split-hero h1{font-size:clamp(2.4rem,4.5vw,4.8rem)}.panel-drawing{background:var(--white);border:1px solid var(--line);padding:28px;min-height:310px;position:relative;overflow:hidden}.number-lines{display:grid;gap:0}.number-line{border-top:1px solid var(--line);display:grid;grid-template-columns:65px 1fr auto;gap:15px;align-items:center;padding:19px 0;font-size:13px}.number-line strong{font:700 20px ui-monospace,monospace}.number-line span:last-child{font:11px ui-monospace,monospace;color:var(--teal)}.flow-step{display:grid;grid-template-columns:100px 1fr 1.2fr;align-items:start;gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}.flow-step:first-child{border-top:1px solid var(--line)}.flow-step strong{font:700 16px ui-monospace,monospace;color:var(--teal)}.flow-step p{font-size:13px;margin:0}.story-switch{min-height:260px;padding:35px;background:var(--white);border:1px solid var(--line)}.story-switch h3{font-size:1.7rem}.handoff-panel{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--white)}.handoff-panel>div{padding:38px}.handoff-panel>div+div{border-left:1px solid var(--line);background:var(--pale)}.handoff-panel small{font:11px ui-monospace,monospace;color:var(--teal);text-transform:uppercase}.handoff-panel p{font-size:14px;margin:25px 0 0}.faq-list{max-width:960px}.faq-list details{border-bottom:1px solid var(--line);padding:18px 0}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{font-size:1.12rem;font-weight:620;cursor:pointer;list-style:none;display:flex;gap:22px;align-items:center}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:before{content:"+";color:var(--teal);font:24px ui-monospace,monospace}.faq-list details[open] summary:before{content:"−"}.faq-list details p{padding-left:46px;margin:16px 0;max-width:720px}.form-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:8%;align-items:start}.lead-form{background:var(--white);border:1px solid var(--line);padding:34px}.field{display:flex;flex-direction:column;gap:7px;margin:0 0 19px}.field label{font-size:13px;font-weight:700}.field input,.field select,.field textarea{padding:12px 13px;min-height:46px;border:1px solid #758d81;background:#fff;color:var(--ink);border-radius:2px;width:100%}.field textarea{min-height:100px;resize:vertical}.field small,.form-note{font-size:11px;line-height:1.5;color:var(--muted)}.field.honey{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.check-field{display:flex;gap:10px;align-items:start;margin-bottom:20px;font-size:12px;line-height:1.6}.check-field input{margin-top:4px;accent-color:var(--teal)}.form-status{padding:12px;border-left:3px solid var(--teal);background:var(--pale);font-size:13px;line-height:1.6;margin:18px 0}.form-status[hidden]{display:none}.form-status.error{border-color:var(--orange-ink);background:var(--warm)}.policy{max-width:870px}.policy h2{font-size:1.7rem;margin-top:42px}.policy p,.policy li{font-size:14px;line-height:1.85;color:var(--muted)}.policy li{margin:8px 0}.data-path{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:28px 0;font:12px ui-monospace,monospace}.data-path span{border:1px solid var(--line);background:var(--white);padding:15px}.data-path b{color:var(--teal)}.site-crumb{font:11px ui-monospace,monospace;color:var(--teal);letter-spacing:.06em}.site-crumb a{text-underline-offset:4px}
@media(max-width:1050px){.nav-shell{flex-wrap:wrap;padding-block:14px}.nav-links{gap:14px}.nav-actions .btn{display:none}.hero{grid-template-columns:1fr;gap:50px;padding-block:72px}.hero-copy{max-width:760px}.workspace-grid{grid-template-columns:1fr}.steps{gap:18px}}@media(max-width:740px){.wrap{width:min(calc(100% - 36px),var(--max))}.nav-shell{min-height:68px}.menu-toggle{display:inline-block}.nav-links{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:6px 0 14px}.nav-links.open{display:flex}.nav-links a{padding:12px 0;border-top:1px solid var(--line)}.hero{padding:58px 0 64px}.section{padding-block:68px}.page-hero{padding:65px 0 56px}.page-hero.split-hero,.trust-layout,.split,.form-grid,.handoff-panel{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.timeline{grid-template-columns:1fr;padding:28px}.time-node h3{margin:16px 0 7px}.flow-step{grid-template-columns:48px 1fr;gap:12px}.flow-step p{grid-column:2}.handoff-panel>div+div{border-left:0;border-top:1px solid var(--line)}.cta-band{padding-block:66px}.number-line{grid-template-columns:52px 1fr}.number-line span:last-child{grid-column:2}.lead-form{padding:22px}.panel-drawing{min-height:240px}.hero-art-label{font-size:10px}.floor-svg{min-width:440px}.map-frame{overflow-x:auto}.floor-svg .room-status{font-size:12px}}@media(max-width:390px){.hero .actions{align-items:stretch;flex-direction:column}.btn{width:100%}.scenario-tabs button{flex:1 1 auto}.number-line strong{font-size:17px}}/* Spatial motion: progressive enhancement, never a prerequisite for reading. */
@media(prefers-reduced-motion:no-preference){
  .motion-ready .reveal-unit{opacity:0;transform:translate3d(0,22px,0);transition:opacity .55s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
  .motion-ready .reveal-unit.is-visible{opacity:1;transform:none}
  .motion-ready .hero .hero-copy,.motion-ready .hero .hero-art,.motion-ready .page-hero>*{animation:arrival-in .65s both cubic-bezier(.2,.7,.2,1)}
  .motion-ready .hero .hero-art,.motion-ready .page-hero>*:nth-child(2){animation-delay:.12s}
  .motion-ready .page-hero>*:nth-child(3){animation-delay:.2s}
  .motion-ready .route.is-tracing{animation:route-trace .64s cubic-bezier(.3,.7,.3,1) both}
  .motion-ready .route.proposal.is-tracing{animation:proposal-trace .64s cubic-bezier(.3,.7,.3,1) both}
  .motion-ready .task-list li{transition:transform .45s cubic-bezier(.2,.75,.2,1),background-color .35s}
  .motion-ready .task-list li.route-updated{animation:queue-pulse .7s ease-out}
  .motion-ready .room[data-state="priority"],.motion-ready .room[data-state="confirmed"]{transition:fill .42s,stroke .42s}
  .motion-ready .room.is-changed{animation:room-emphasis .7s ease-out}
  .motion-ready .state-copy.is-updating{animation:state-arrival .42s ease-out}
  .motion-ready .data-path span.is-visible{animation:state-arrival .5s ease-out both}
  .motion-ready .faq-list details[open] p{animation:state-arrival .3s ease-out}
  .motion-ready .form-status:not([hidden]){animation:state-arrival .35s ease-out}
}
@keyframes arrival-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes state-arrival{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes route-trace{from{stroke-dasharray:850 850;stroke-dashoffset:850}to{stroke-dasharray:850 850;stroke-dashoffset:0}}
@keyframes proposal-trace{from{stroke-dashoffset:850}to{stroke-dashoffset:0}}
@keyframes room-emphasis{50%{filter:drop-shadow(0 0 6px var(--apricot))}to{filter:none}}
@keyframes queue-pulse{45%{background:var(--warm)}to{background:transparent}}
.nav-links a{position:relative;transition:color .2s}.nav-links a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;border-bottom:2px solid var(--teal);transition:right .22s}.nav-links a:hover:after,.nav-links a:focus-visible:after,.nav-links a[aria-current]:after{right:0}.btn{position:relative;overflow:hidden}.btn:active{transform:translateY(0) scale(.98)}.scenario-tabs button,.switches button,.room-selectors button{transition:background-color .2s,border-color .2s,color .2s,transform .2s}.scenario-tabs button:hover,.switches button:hover,.room-selectors button:hover{border-color:var(--teal);transform:translateY(-2px)}.scenario-tabs button:active,.switches button:active,.room-selectors button:active{transform:none}.state-row,.time-node,.flow-step{transition:border-color .3s,background-color .3s}.state-row:hover,.flow-step:hover{background:var(--pale)}.time-node.is-current,.flow-step.is-current,.number-line.is-current{border-color:var(--orange-ink);background:var(--warm)}.story-switch,.handoff-panel,.panel-drawing{transition:border-color .35s,box-shadow .35s}.story-switch.is-engaged,.handoff-panel.is-engaged,.panel-drawing.is-engaged{border-color:var(--teal);box-shadow:0 8px 28px rgba(24,51,47,.08)}.faq-list details{transition:background-color .22s,padding-left .22s}.faq-list details:hover,.faq-list details:focus-within{background:var(--pale);padding-left:12px}.faq-list summary:before{display:inline-block;transition:transform .2s}.faq-list details[open] summary:before{transform:rotate(90deg)}.field input,.field select,.field textarea{transition:border-color .2s,box-shadow .2s,background-color .2s}.field:focus-within input,.field:focus-within select,.field:focus-within textarea{border-color:var(--teal);box-shadow:0 0 0 3px var(--pale);background:var(--white)}.field:focus-within label{color:var(--teal)}.data-path span{transition:border-color .25s,background-color .25s}.data-path span:hover{border-color:var(--teal);background:var(--pale)}
.form-status.is-sending{position:relative;padding-left:30px}.form-status.is-sending:before{content:"";position:absolute;left:12px;top:17px;width:8px;height:8px;border-radius:50%;background:var(--teal)}@media(prefers-reduced-motion:no-preference){.form-status.is-sending:before{animation:send-pulse 1.1s ease-in-out infinite}}@keyframes send-pulse{50%{opacity:.3;transform:scale(.7)}}
[data-story],[data-control],[data-flow]{--selection-index:0;--selection-count:3}.switches{position:relative;padding-bottom:8px}.switches:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--line)}.switches:before{content:"";position:absolute;bottom:0;left:0;width:calc(100% / var(--selection-count));height:2px;background:var(--orange-ink);z-index:1;transform:translateX(calc(var(--selection-index) * 100%));transition:transform .45s cubic-bezier(.2,.75,.2,1)}.story-switch,.handoff-panel{position:relative;overflow:hidden}.story-switch:after,.handoff-panel:after{content:"";position:absolute;left:0;top:0;height:3px;width:calc(100% / var(--selection-count));background:var(--orange-ink);transform:translateX(calc(var(--selection-index) * 100%));transition:transform .45s cubic-bezier(.2,.75,.2,1)}.floor-svg .route-point{transition:fill .32s}.motion-ready [data-simulation][data-current-stage="1"] .route-point{fill:var(--apricot)}.motion-ready [data-simulation][data-current-stage="2"] .route-point{fill:var(--teal)}
@media(max-width:740px){.nav-links a:after{bottom:6px}.faq-list details:hover,.faq-list details:focus-within{padding-left:0}}
@media(prefers-reduced-motion:reduce){.switches:before,.story-switch:after,.handoff-panel:after{transition:none}}
@media(prefers-reduced-motion:reduce){.reveal-unit{opacity:1!important;transform:none!important}.btn:active,.scenario-tabs button:hover,.switches button:hover,.room-selectors button:hover{transform:none!important}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.btn:hover{transform:none}}