@import url('/design/review-v02/assets/fonts.css');

/* SPOLLOW product chapter: one shared route/window, linear mobile reading. */
.spollow-hero { display:grid; grid-template-columns:1.2fr .8fr; padding:36px; gap:28px; }
.spollow-intro h2 { font-size:clamp(38px,4vw,58px); font-weight:600; letter-spacing:-.055em; margin:28px 0 20px; }
.product-proof { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; }
.product-proof .phone-shot { margin:0; width:min(100%,185px); }
.product-proof .phone-frame { max-height:320px; }
.product-proof .phone-frame img { width:100%; height:100%; object-fit:contain; border-radius:17px; }
.product-proof .spollow-media-note { max-width:36ch; margin:0; font-size:12px; line-height:1.55; color:var(--muted); text-align:center; }
.proof-brand { padding:12px 20px; background:#0b1514; border-radius:12px; }
.proof-brand img { width:120px; height:auto; }
.project-chapter[data-paged=true] .spollow-hero { padding-top:52px; }
.project-chapter[data-paged=true] .spollow-intro h2 { font-size:clamp(34px,3.2vw,46px); letter-spacing:-.03em; margin:18px 0; }
.project-chapter[data-paged=true] .spollow-intro .lead { font-size:16px; }
.contact-preview-note { font-size:13px; line-height:1.65; color:var(--muted); margin:0 0 18px; }
.window-scroll :is(.spollow-opening,.spollow-section p,.spollow-features p,.spollow-steps p,.story-text p,.name-story dd,.story-outro,.product-card p,.legal-copy p) { font-size:15px; line-height:1.8; }
.window-scroll :is(.spollow-media-note,.spollow-note,.image-caption,.contact-privacy,.plan-model) { font-size:12px; line-height:1.65; }
.spollow-intro .lead { font-size:17px; line-height:1.65; max-width:490px; }
.spollow-opening { font-size:13px; line-height:1.8; color:var(--muted); max-width:480px; margin:16px 0 22px; }
.spollow-leagues { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 25px; }
.spollow-leagues span { padding:8px 11px; border:1px solid var(--line); border-radius:30px; font-size:11px; }
.spollow-brand-panel { background:radial-gradient(ellipse at 70% 20%,#55d08e24,transparent 65%),#0b1514; color:#f5f7f6; border-radius:12px; min-height:420px; padding:26px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.spollow-brand-panel .eyebrow { align-self:start; color:#b6cac0; margin-bottom:20px; }
.spollow-brand-panel .product-signet { width:min(100%,180px); height:auto; }
.spollow-brand-panel .product-wordmark { width:min(100%,180px); height:auto; }
.spollow-brand-panel p { font-size:19px; line-height:1.5; letter-spacing:-.4px; text-align:center; margin:14px 0 0; }
.spollow-body { padding:0 36px; }
.spollow-section { padding:38px 0; border-top:1px solid var(--line); scroll-margin-top:22px; }
.spollow-section h3 { font-size:clamp(28px,3vw,39px); font-weight:600; letter-spacing:-.045em; line-height:1.18; margin:16px 0 20px; }
.spollow-section p { font-size:14px; line-height:1.85; color:var(--muted); max-width:680px; }
.spollow-features { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin-top:27px; }
.feature-number { color:var(--accent); font-size:12px; }
.spollow-section h4 { font-size:17px; line-height:1.45; letter-spacing:-.4px; font-weight:600; margin:12px 0; }
.spollow-features p { font-size:13px; margin:0; }
.spollow-section .spollow-note { font-size:12px; line-height:1.75; max-width:1099px; margin:24px 0 0; }
.spollow-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; list-style:none; counter-reset:setup; padding:0; margin:28px 0 0; }
.spollow-steps li { counter-increment:setup; }
.spollow-steps li::before { content:'0' counter(setup); display:block; font-size:28px; color:var(--accent); margin-bottom:17px; }
.spollow-steps strong { font-size:15px; line-height:1.6; }
.spollow-steps p { font-size:13px; }
.spollow-design { display:grid; grid-template-columns:.9fr 1.1fr; gap:30px; align-items:center; }
.spollow-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.spollow-gallery figure { margin:0; min-width:0; }
.spollow-gallery img { width:100%; height:auto; border-radius:15px; border:1px solid var(--line); background:#071310; }
.spollow-gallery figcaption { font-size:11px; line-height:1.6; margin:10px 0 0; }
.spollow-gallery .spollow-media-note { grid-column:1/-1; font-size:11px; line-height:1.7; margin:0; }
.spollow-plans { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.spollow-plans>section { border:1px solid var(--line); border-radius:12px; padding:25px; background:var(--switch); }
.spollow-plans>section:last-child { border-color:var(--accent); }
.plan-kind { font-size:10px; letter-spacing:1.4px; color:var(--accent); }
.spollow-plans .plan-model { font-size:12px; margin:0 0 22px; }
.spollow-plans ul { list-style:none; padding:0; margin:0; }
.spollow-plans li { font-size:13px; line-height:1.8; padding:10px 0; border-top:1px solid var(--line); }
.spollow-testing { display:grid; grid-template-columns:1.3fr .7fr; align-items:center; gap:35px; }
.spollow-test-state { border:1px solid var(--line); border-radius:12px; padding:24px; }
.spollow-test-state .status { font-size:13px; }
.spollow-test-state p { font-size:14px; }
.spollow-test-state strong { color:var(--fg); font-weight:600; }
.spollow-test-state>span:last-child { font-size:11px; color:var(--muted); }
.spollow-faq details { border-top:1px solid var(--line); }
.spollow-faq summary { cursor:pointer; padding:18px 0; font-size:14px; line-height:1.6; }
.spollow-faq summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.spollow-faq details p { margin:0 0 20px; }
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .spollow-hero { grid-template-columns:1fr; padding:28px 24px; gap:24px; }
 .spollow-intro h2 { font-size:clamp(36px,10.5vw,54px); }
 .spollow-intro .lead { font-size:16px; }
 .spollow-brand-panel { min-height:280px; }
 .spollow-brand-panel .product-signet { width:100px; }
 .spollow-brand-panel .eyebrow { margin-bottom:8px; }
 .spollow-brand-panel p { font-size:17px; margin-top:4px; }
 .spollow-body { padding:0 24px; }
 .spollow-section { padding:30px 0; }
 .spollow-features,.spollow-steps,.spollow-plans,.spollow-testing,.spollow-design { grid-template-columns:1fr; gap:22px; }
 .spollow-steps li { padding-left:44px; position:relative; }
 .spollow-steps li::before { position:absolute; left:0; top:0; font-size:23px; }
 .spollow-steps p { margin:6px 0 0; }
 .spollow-gallery { max-width:430px; margin:0 auto; }
 .spollow-plans>section { padding:22px; }
 .spollow-testing { gap:16px; }
}

:root { color-scheme: dark; --bg:#10141c; --fg:#f0f3f6; --muted:#a1acba; --accent:#a8c5e7; --line:#ffffff1c; --glass:#1c2635bd; --panel:#18202cfc; --shade:#0006; --switch:#ffffff12; }
:root[data-theme=light] { color-scheme:light; --bg:#ecf0f3; --fg:#202c3b; --muted:#576778; --accent:#365f97; --line:#263e6026; --glass:#fbfdffbd; --panel:#f8fafcfc; --shade:#21344f26; --switch:#1c335412; }
* { box-sizing:border-box; }
html,body { margin:0; background:var(--bg); color:var(--fg); }
body { font-family:Manrope,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; color:inherit; }
button { cursor:pointer; border:0; background:transparent; }
a,button { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
h2:focus { outline:none; }
[hidden] { display:none!important; }
svg { width:20px; height:20px; flex-shrink:0; }
img { display:block; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.brand-icon { display:block; width:32px; height:32px; background:url('/public/brand/lichtfeld/needbuilt-mark-on-dark.svg') center/contain no-repeat; flex-shrink:0; }
.workspace { position:relative; isolation:isolate; height:100svh; min-height:640px; overflow:hidden; background:var(--bg); }
.ambience { position:absolute; inset:0; z-index:-2; pointer-events:none; background:radial-gradient(ellipse at 72% 40%,#6989b524,transparent 58%),linear-gradient(140deg,transparent 50%,#4e77a80a); }
.desktop-header { position:absolute; left:42px; right:42px; top:28px; display:flex; align-items:center; justify-content:center; gap:24px; }
.header-brand { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:700; letter-spacing:-.8px; }
.brand-lettering { display:block; width:100%; }
.brand-lettering img { width:100%; height:auto; }
.brand-lettering .brand-lettering-light { display:none; }
[data-theme=light] .brand-lettering .brand-lettering-dark { display:none; }
[data-theme=light] .brand-lettering .brand-lettering-light { display:block; }
.header-brand .brand-lettering { width:112px; }
.brand-period,em { color:var(--accent); font-style:normal; }
.header-category { font-size:10px; font-weight:600; letter-spacing:1.6px; color:var(--muted); }
.header-contact { display:flex; align-items:center; gap:10px; font-size:11px; }
.header-contact svg { width:14px; height:14px; }
.hero { position:absolute; left:16%; top:25%; z-index:1; }
.hero h1 { font-size:clamp(94px,9.7vw,180px); line-height:1.1; font-weight:600; letter-spacing:-.084em; margin:0 0 31px; }
.hero h1:has(.brand-lettering) { width:clamp(360px,39vw,730px); line-height:0; }
.claim { margin:0; font-size:32px; line-height:1.24; letter-spacing:-1.3px; }
.hero-description { font-size:13px; line-height:1.8; color:var(--muted); margin:18px 0 0; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; column-gap:28px; row-gap:16px; margin-top:26px; }
.hero-discover { display:inline-flex; align-items:center; gap:30px; font-size:12px; min-height:44px; border-bottom:1px solid var(--line); flex-shrink:0; }
.hero-discover svg { width:15px; height:15px; }
.sculpture { position:absolute; z-index:-1; width:650px; max-width:48vw; top:16%; right:2%; pointer-events:none; transform:translate3d(var(--px,0px),var(--py,0px),0); transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.sculpture img { width:100%; height:auto; }
.desktop-icons { position:absolute; left:30px; top:23%; width:108px; display:flex; flex-direction:column; gap:19px; z-index:2; }
.desktop-icon { display:flex; flex-direction:column; align-items:center; text-align:center; padding:8px 4px; border:1px solid transparent; border-radius:12px; }
.desktop-icon.selected { background:var(--switch); border-color:var(--line); }
.app-tile { width:60px; height:60px; border-radius:17px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); background:linear-gradient(140deg,#ffffff12,#ffffff03); box-shadow:inset 0 1px 0 #fff1,0 9px 30px #0002; margin-bottom:10px; transition:transform .24s; }
.app-tile .brand-icon { width:39px; height:39px; }
.app-tile svg { width:27px; height:27px; }
/* Original app artwork fills the common rounded frame; the source stays untouched. */
.app-tile > img { width:100%; height:100%; min-width:0; min-height:0; object-fit:cover; object-position:center; }
.desktop-icon:hover .app-tile { transform:translateY(-3px); }
.icon-name { font-size:11px; font-weight:600; }
.icon-detail { font-size:12px; color:var(--muted); margin-top:3px; }
.mobile-products { display:none; }
.taskbar { position:absolute; z-index:30; left:50%; bottom:36px; transform:translateX(-50%); width:calc(100% - 160px); max-width:1150px; min-height:68px; display:flex; align-items:center; gap:18px; padding:10px 16px; border-radius:18px; border:1px solid var(--line); background:var(--glass); backdrop-filter:blur(24px) saturate(115%); box-shadow:inset 0 1px 0 #fff1,0 18px 48px var(--shade); }
.launcher-toggle { display:flex; align-items:center; gap:9px; padding:4px; font-size:11px; }
.bar-divider { width:1px; height:26px; background:var(--line); flex-shrink:0; }
.all-products,.bar-contact { display:flex; gap:8px; align-items:center; font-size:11px; min-height:40px; }
.all-products svg,.bar-contact svg { width:17px; height:17px; }
.running-apps { flex:1; min-width:0; display:flex; align-items:center; gap:6px; overflow-x:auto; padding:5px; }
.running-app { border-radius:9px; display:flex; align-items:center; gap:7px; padding:9px 11px; font-size:12px; white-space:nowrap; position:relative; flex-shrink:0; }
.running-app[aria-pressed=true] { background:var(--switch); }
.running-app>i { position:absolute; height:2px; width:5px; bottom:2px; left:50%; transform:translateX(-50%); background:var(--accent); opacity:.5; }
.running-app .brand-icon { width:24px; height:24px; }
.running-app[aria-pressed=true]>i { width:15px; opacity:1; }
.app-icon { width:24px; height:24px; border-radius:6px; }
.needbuilt-icon { background:var(--fg); padding:2px; }
.theme-control { display:flex; align-items:center; gap:7px; flex-shrink:0; }
.theme-control svg { width:14px; height:14px; color:var(--muted); }
.theme-control input { width:42px; height:24px; margin:0; appearance:none; background:var(--switch); border-radius:20px; border:1px solid var(--line); cursor:pointer; }
.theme-control input::-webkit-slider-thumb { appearance:none; height:18px; width:18px; border-radius:50%; background:var(--fg); box-shadow:0 1px 4px #0003; }
.theme-control input::-moz-range-thumb { height:18px; width:18px; border:0; border-radius:50%; background:var(--fg); }
.theme-control>span { font-size:10px; min-width:36px; }
.clock { display:grid; gap:2px; text-align:right; min-width:89px; white-space:nowrap; }
.clock time { font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.clock span { font-size:9px; color:var(--muted); }
.desktop-legal { position:absolute; bottom:12px; left:42px; right:42px; display:flex; gap:20px; color:var(--muted); font-size:12px; }
.desktop-hint { margin-left:auto; }
.window { position:absolute; z-index:10; top:11%; left:50%; transform:translate(-50%,var(--window-offset,0px)); width:1020px; max-width:calc(100% - 180px); height:calc(100% - 215px); max-height:700px; min-height:420px; background:var(--panel); border:1px solid var(--line); border-radius:18px; box-shadow:0 34px 100px var(--shade),0 2px 5px #0002; backdrop-filter:blur(22px); overflow:hidden; animation:window-in .4s cubic-bezier(.16,1,.3,1) both; }
@keyframes window-in { from { opacity:0; scale:.96; translate:0 10px; } to { opacity:1; scale:1; translate:0 0; } }
.window:not(.active) { box-shadow:0 20px 60px var(--shade); }
.window.expanded { top:16px; width:calc(100% - 40px); max-width:none; height:calc(100% - 132px); max-height:none; }
.window-bar { height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 17px; border-bottom:1px solid var(--line); background:#ffffff04; }
.window-title { display:flex; gap:9px; align-items:center; font-size:11px; font-weight:600; }
.window-title .app-icon { width:22px; height:22px; }
.window-actions { display:flex; gap:6px; }
.window-actions button { min-height:32px; min-width:32px; display:grid; place-items:center; border-radius:6px; }
.window-actions button:hover { background:var(--switch); }
.window-actions svg { width:16px; height:16px; }
.window-bar { cursor:grab; user-select:none; }
.window-bar.window-dragging,.window.window-dragging .window-bar { cursor:grabbing; }
.window-bar a,.window-bar button { cursor:pointer; }
.window-bar:focus-visible { outline:2px solid var(--accent); outline-offset:-4px; }
.window-scroll { height:calc(100% - 54px); overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.has-window .hero,.has-window .desktop-icons { opacity:.25; }
.hero,.desktop-icons { transition:opacity .3s; }
.case-main { display:grid; grid-template-columns:1.06fr 1fr; min-height:calc(100% - 60px); }
.case-copy { padding:34px 36px 28px; }
.eyebrow,.case-kicker { font-size:9px; letter-spacing:1.3px; font-weight:600; color:var(--muted); }
.case-kicker { display:flex; align-items:center; justify-content:space-between; gap:8px; text-transform:uppercase; }
.status { font-size:10px; letter-spacing:0; text-transform:none; white-space:nowrap; color:var(--muted); display:inline-flex; align-items:center; gap:6px; }
.status:before { content:''; height:4px; width:4px; background:var(--accent); border-radius:50%; }
h2 { font-size:clamp(36px,4vw,58px); line-height:1.07; letter-spacing:-2.5px; font-weight:500; margin:31px 0 17px; }
.lead { font-size:13px; line-height:1.75; max-width:520px; color:var(--muted); }
.case-detail { margin-top:26px; padding-top:17px; border-top:1px solid var(--line); display:grid; grid-template-columns:75px 1fr; gap:15px; }
.case-detail p { margin:0; font-size:12px; line-height:1.7; }
.case-facts { display:flex; gap:55px; margin:24px 0; }
.case-facts div { display:grid; gap:6px; font-size:11px; }
dt { color:var(--muted); } dd { margin:0; }
.availability { border-top:1px solid var(--line); padding-top:15px; }
.availability p { font-size:12px; margin:9px 0 4px; }
.availability>span:last-child { font-size:11px; color:var(--muted); }
.text-link { display:flex; align-items:center; justify-content:space-between; font-size:12px; border-bottom:1px solid var(--line); padding:0 0 9px; margin-top:24px; gap:12px; }
.text-link svg { width:15px; height:15px; }
.case-art { margin:20px 20px 20px 0; min-height:400px; position:relative; overflow:hidden; border-radius:8px; background:radial-gradient(ellipse at 75% 28%,#55d08e19,transparent 62%),#0b1514; color:#f5f7f6; display:grid; place-items:center; }
.case-art>.eyebrow { position:absolute; left:24px; top:24px; color:#b6cac0; }
.product-brand { width:100%; display:flex; flex-direction:column; align-items:center; padding:60px 0 90px; }
.product-signet { width:76%; max-width:300px; height:auto; }
.product-wordmark { width:51%; max-width:230px; height:auto; margin-top:-20px; }
.art-footer { position:absolute; left:24px; bottom:24px; color:#c7d9cf; font-size:15px; line-height:1.5; }
.case-footer { display:flex; align-items:center; justify-content:space-between; padding:17px 30px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; gap:20px; }
.case-footer a { display:flex; align-items:center; gap:12px; color:var(--fg); }
.case-footer svg { width:14px; height:14px; }
.story-copy,.catalog-copy { padding:34px 46px 32px; }
.story-copy .lead { max-width:560px; font-size:15px; }
.story-text { margin-top:26px; max-width:660px; color:var(--muted); font-size:13px; line-height:1.8; }
.name-story { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding:24px 0; margin:25px 0; border-block:1px solid var(--line); }
.name-story dt { font-size:28px; letter-spacing:-1px; color:var(--fg); }
.name-story dd { margin-top:5px; font-size:11px; color:var(--muted); }
.product-grid { margin-top:28px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.product-card { border:1px solid var(--line); border-radius:14px; padding:25px; background:var(--switch); transition:translate .2s,border-color .2s; }
.product-card:hover { translate:0 -3px; border-color:var(--accent); }
.card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.card-top img { border-radius:17px; }
.product-card h3 { font-size:24px; letter-spacing:-.7px; margin:25px 0 9px; }
.product-card p { color:var(--muted); font-size:12px; line-height:1.7; }
.card-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:24px; font-size:10px; color:var(--muted); }
.launcher { position:absolute; z-index:40; bottom:119px; left:max(80px,calc((100% - 1150px)/2)); width:330px; max-height:calc(100svh - 145px); overflow:auto; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--panel); box-shadow:0 25px 70px var(--shade); }
.launcher-heading { display:flex; align-items:center; gap:12px; font-size:11px; color:var(--muted); margin-bottom:22px; }
.launcher-heading .brand-icon { color:var(--fg); }
.launcher>a,.launcher>button { display:flex; align-items:center; text-align:left; width:100%; gap:14px; padding:14px 0; border-top:1px solid var(--line); font-size:13px; }
.launcher>a>svg:last-child,.motion-state { margin-left:auto; }
.launcher>a .brand-icon { width:20px; height:20px; }
.motion-state { font-size:11px; color:var(--muted); }
.launcher-legal { display:flex; gap:18px; margin-top:24px; font-size:10px; color:var(--muted); }
.context-menu { position:fixed; z-index:50; width:222px; padding:6px; border-radius:10px; border:1px solid var(--line); background:var(--panel); box-shadow:0 18px 40px var(--shade); }
.context-menu button { display:block; text-align:left; width:100%; min-height:40px; padding:10px; font-size:12px; border-radius:5px; }
.context-menu button:hover,.context-menu button:focus { background:var(--switch); }
@supports not (backdrop-filter:blur(1px)) { .taskbar { background:var(--panel); } }
@media(min-width:1100px) and (min-height:601px) and (max-width:1150px) { .hero h1 { font-size:9.7vw; }.claim { font-size:28px; }.sculpture { top:33%; }.taskbar { width:calc(100% - 64px); gap:12px; }.clock,.bar-contact { display:none; }.window { max-width:calc(100% - 60px); }.running-app>span { max-width:70px; overflow:hidden; text-overflow:ellipsis; }.header-category { font-size:9px; } }
@media(min-width:1800px) { .sculpture { width:800px; right:5%; }.hero h1 { font-size:10vw; } }
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
  .workspace { height:auto; min-height:100svh; overflow:clip; padding-bottom:120px; }
  .desktop-header { position:relative; top:auto; left:auto; right:auto; margin:22px 24px 0; }
  .header-brand { font-size:16px; }.header-brand .brand-icon { width:29px; height:29px; }.header-category { display:none; }.header-contact { font-size:10px; }
  .hero { position:relative; top:auto; left:auto; margin:62px 24px 0; }
  .hero h1 { font-size:clamp(56px,18.7vw,126px); margin-bottom:23px; }
  .hero h1:has(.brand-lettering) { width:min(100%,560px); }
  .claim { font-size:29px; letter-spacing:-1px; }.hero-description { margin-top:14px; font-size:12px; }.hero-discover { font-size:11px; }
  .sculpture { position:relative; right:auto; top:auto; margin:22px auto 6px; width:290px; max-width:78vw; transform:none; }
  .desktop-icons { display:none; }
  .mobile-products { display:block; margin:12px 24px 0; position:relative; }
  .mobile-products>.eyebrow { display:block; margin-bottom:18px; }
  .mobile-products>a { display:flex; align-items:center; gap:16px; padding:20px 0; border-top:1px solid var(--line); }
  .mobile-products img { border-radius:14px; }.mobile-products .brand-icon { width:52px; height:52px; padding:7px; }
  .mobile-products>a>span:not(.brand-icon) { display:grid; gap:5px; flex:1; }
  .mobile-products strong { font-size:14px; font-weight:600; }.mobile-products span span { font-size:11px; color:var(--muted); }.mobile-products small { font-size:9px; color:var(--muted); }.mobile-products>a>svg { width:15px; height:15px; }
  .taskbar { position:fixed; left:12px; right:12px; bottom:12px; transform:none; width:auto; max-width:none; min-height:64px; padding:8px 10px; gap:10px; border-radius:16px; }
  .launcher-toggle { min-width:34px; min-height:44px; }.launcher-toggle>span:not(.brand-icon),.bar-divider,.bar-contact,.theme-control>span,.clock { display:none; }
  .launcher-toggle .brand-icon { width:29px; height:29px; }.all-products { font-size:10px; gap:5px; }.all-products svg { width:16px; height:16px; }
  .running-apps { gap:3px; padding:4px; }.running-app { min-width:35px; min-height:44px; padding:5px; }.running-app>span:not(.brand-icon) { display:none; }.running-app>i { bottom:3px; }
  .theme-control { gap:4px; }.theme-control>svg { display:none; }.theme-control input { width:42px; height:28px; }
  .desktop-legal { position:relative; left:auto; right:auto; bottom:auto; margin:26px 24px 0; font-size:10px; }.desktop-hint { display:none; }
  .window,.window.expanded { position:relative; left:auto; top:auto; transform:none; width:100%; max-width:none; height:auto; min-height:calc(100svh - 115px); max-height:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; animation:none; }
  .window:not(.active) { display:none; }.window-scroll { height:auto; overflow:visible; }
  .has-window .desktop-header,.has-window .hero,.has-window .sculpture,.has-window .mobile-products,.has-window .desktop-update { display:none; }.has-window .desktop-legal { margin-top:22px; }
  .window-bar { height:66px; padding:0 18px; position:sticky; top:0; z-index:1; background:var(--panel); }.window-title { font-size:11px; }.window-actions button { min-width:44px; min-height:44px; }.window-actions button[data-command=expand] { display:none; }
  .case-main { display:flex; flex-direction:column; }.case-copy { padding:29px 24px 24px; }.case-kicker { font-size:8px; letter-spacing:.8px; }.status { font-size:9px; }
  h2 { font-size:44px; letter-spacing:-1.9px; margin-top:29px; }.lead { font-size:13px; }.case-detail p { font-size:12px; }.case-facts { font-size:11px; }
  .case-art { margin:0 24px 24px; min-height:360px; }.product-signet { max-width:240px; }.art-footer { font-size:13px; }.case-footer { padding:20px 24px; align-items:start; flex-direction:column; gap:12px; }
  .story-copy,.catalog-copy { padding:30px 24px; }.story-copy .lead { font-size:14px; }.story-text { font-size:13px; }.name-story { gap:12px; }.name-story dt { font-size:25px; }.name-story dd { font-size:10px; line-height:1.5; }
  .product-grid { grid-template-columns:1fr; }.product-card { padding:22px; }
  .launcher { position:fixed; left:12px; bottom:88px; width:330px; max-width:calc(100% - 24px); max-height:calc(100svh - 105px); }.launcher>a,.launcher>button { min-height:48px; }
}
[data-motion=reduced] *,[data-motion=reduced] *:before,[data-motion=reduced] *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* V0.4: quiet product signals, dynamic tasks and tactile material. */
.status:before { display:none; }
.status { gap:7px; }
.status-signal { --status-color:var(--accent); width:17px; height:17px; overflow:visible; color:var(--status-color); }
.signal-ring { opacity:.4; transform-origin:center; animation:signal-breathe 3.6s ease-in-out infinite; }
@keyframes signal-breathe { 0%,100% {opacity:.25;scale:.8} 50% {opacity:.8;scale:1} }
.status.compact { gap:4px; font-size:12px; }.status.compact .status-signal { width:13px; height:13px; }
.catalog-rail { display:flex; align-items:center; justify-content:space-between; gap:16px; border-block:1px solid var(--line); padding:16px 0; margin-top:26px; font-size:10px; color:var(--muted); }
.catalog-rail>span:first-child { color:var(--fg); }
.product-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.product-card { max-width:none; padding:28px; background:radial-gradient(ellipse at 88% 0%,#55d08e0c,transparent 60%),var(--switch); }
.product-card h3 { font-size:31px; margin-top:25px; }.product-card p { max-width:440px; }
.card-bottom>span { display:flex; align-items:center; gap:12px; color:var(--fg); }
.status-legend { margin-top:26px; color:var(--muted); font-size:11px; }.status-legend summary { cursor:pointer; padding:10px 0; }.status-legend>div { display:flex; flex-wrap:wrap; gap:22px; padding:15px 0; }
.product-actions { display:flex; align-items:center; justify-content:space-between; padding:18px 30px; border-top:1px solid var(--line); font-size:11px; gap:20px; }.product-actions>a { display:flex; align-items:center; gap:9px; }.product-actions svg { width:16px; height:16px; }
.release-notes { padding:32px 36px; border-top:1px solid var(--line); }.release-notes h3 { font-size:28px; font-weight:500; letter-spacing:-1px; }.release-entry { border-top:1px solid var(--line); padding:20px 0; font-size:12px; }.release-entry header { display:flex; justify-content:space-between; gap:18px; }.release-entry time { color:var(--muted); }.release-entry h4 { color:var(--accent); font-size:10px; margin:18px 0 9px; }.release-entry ul { padding-left:18px; color:var(--muted); line-height:1.8; }
.task-entry { position:relative; display:flex; flex-shrink:0; align-items:center; gap:0; padding-right:3px; border-radius:10px; border:1px solid transparent; background:var(--switch); }
.task-entry:has([aria-pressed=true]) { border-color:var(--line); }.task-entry.minimized { background:transparent; }.task-entry .running-app { padding-right:5px; background:transparent; }
.task-close { display:grid; place-items:center; min-width:30px; min-height:34px; border-radius:7px; opacity:.65; }.task-close:hover,.task-close:focus-visible { opacity:1; background:var(--switch); }.task-close svg { width:16px; height:16px; }
.motion-control { display:flex; align-items:center; gap:8px; flex-shrink:0; font-size:10px; color:var(--muted); }
#motion-toggle { width:40px; height:24px; border:1px solid var(--line); background:var(--switch); border-radius:20px; padding:2px; }
.motion-thumb { display:block; width:18px; height:18px; border-radius:50%; background:var(--muted); transition:translate .2s,background .2s; }
#motion-toggle[aria-checked=true] .motion-thumb { translate:15px 0; background:var(--accent); }
@media(min-width:1100px) and (min-height:601px) {
.desktop-icons.drag-ready { inset:0; width:auto; display:block; pointer-events:none; }
.desktop-icons.drag-ready .desktop-icon { position:absolute; width:108px; pointer-events:auto; user-select:none; touch-action:none; }
}
.desktop-icon.dragging { z-index:3; background:var(--switch); border-color:var(--accent); cursor:grabbing; }.desktop-icon.dragging .app-tile { transform:translateY(-3px) scale(1.035); }
.sculpture { isolation:isolate; }
.sculpture:before { content:''; position:absolute; z-index:-1; inset:15% 5% 4%; background:radial-gradient(ellipse,#76b8ff20,transparent 68%); filter:blur(25px); }
.contact-copy { padding:34px 46px 38px; max-width:900px; }.contact-copy h2 { margin-top:25px; }.contact-copy .lead { max-width:620px; }
#contact-form { margin-top:25px; display:grid; gap:18px; }
#contact-form label { display:grid; gap:8px; font-size:11px; color:var(--muted); }.form-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
#contact-form input,#contact-form textarea,#contact-form select { width:100%; background:var(--switch); color:var(--fg); border:1px solid var(--line); border-radius:8px; padding:12px 14px; font:13px/1.5 Manrope,Arial,sans-serif; }
#contact-form textarea { resize:vertical; min-height:130px; }.contact-privacy { font-size:10px; line-height:1.6; color:var(--muted); margin:0; }.contact-privacy a { text-decoration:underline; text-underline-offset:3px; }
.contact-submit { display:flex; align-items:center; flex-wrap:wrap; gap:18px; }.contact-submit button { display:flex; align-items:center; gap:22px; padding:13px 18px; border:1px solid var(--line); background:var(--switch); border-radius:9px; font-size:12px; }.contact-submit>span { font-size:10px; color:var(--muted); }
#contact-result { padding:14px 18px; border:1px solid var(--line); border-radius:8px; color:var(--accent); font-size:12px; line-height:1.7; }
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
  .taskbar { gap:8px; }.motion-control { gap:4px; flex-direction:column; font-size:8px; }#motion-toggle { height:24px; }.theme-control { margin-left:2px; }
  .task-entry .running-app { min-width:32px; padding:4px; }.task-close { min-width:32px; min-height:44px; }.task-close svg { width:14px; height:14px; }
  .contact-copy { padding:28px 24px; }.form-pair { grid-template-columns:1fr; gap:18px; }.contact-submit { gap:12px; }.contact-submit button { min-height:44px; }
  .catalog-rail>span:last-child { max-width:190px; text-align:right; line-height:1.6; }.product-card { padding:22px; }.card-bottom { flex-wrap:wrap; gap:14px; }.status-legend>div { flex-direction:column; gap:15px; }
  .product-actions { padding:20px 24px; flex-direction:column; align-items:start; }.release-notes { padding:28px 24px; }
}
[data-motion=reduced] .signal-ring { opacity:.6; transform:none; }

/* Story: two words, concise editorial reading rhythm. */
.story-copy { padding:40px 46px 38px; }
.story-intro h2 { font-size:clamp(42px,4.2vw,66px); line-height:1.07; letter-spacing:-.055em; margin:30px 0 22px; font-weight:600; }
.story-copy .lead { max-width:660px; color:var(--fg); font-size:18px; line-height:1.6; margin:0; }
.story-text { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin:34px 0 36px; max-width:none; color:var(--muted); font-size:15px; line-height:1.75; }
.story-text h3 { margin:0 0 10px; font-size:19px; line-height:1.3; letter-spacing:-.45px; color:var(--fg); font-weight:600; }
.story-text p { margin:0; max-width:46ch; }
.story-text strong { color:var(--fg); font-weight:600; }
.story-name { padding:25px 0 27px; border-block:1px solid var(--line); }
.name-story { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding:0; margin:19px 0 0; border:0; }
.name-story dt { font-size:38px; font-weight:600; letter-spacing:-1.7px; color:var(--accent); line-height:1.1; }
.name-story dt span { display:block; font-size:17px; letter-spacing:-.3px; line-height:1.4; margin-top:10px; color:var(--fg); }
.name-story dd { margin:7px 0 0; font-size:13px; line-height:1.6; color:var(--muted); }
.story-outro { font-size:16px; line-height:1.6; color:var(--fg); margin:24px 0 14px; }
.story-discover { font-size:14px; padding-block:12px; }
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .story-copy { padding:30px 24px 34px; }
 .story-intro h2 { font-size:clamp(35px,10vw,54px); margin:27px 0 20px; letter-spacing:-.055em; }
 .story-copy .lead { font-size:16px; line-height:1.65; }
 .story-text { grid-template-columns:1fr; gap:26px; font-size:15px; margin:30px 0; }
 .story-text h3 { font-size:19px; }
 .name-story { gap:22px; }
 .name-story dt { font-size:30px; letter-spacing:-1px; }
 .name-story dt span { font-size:15px; margin-top:10px; }
 .name-story dd { font-size:12px; }
 .story-outro { font-size:15px; }
}
@media(max-width:350px) { .name-story { grid-template-columns:1fr; gap:25px; } }

/* Contact: complete desktop form, reachable actions on small screens. */
@media(min-width:1100px) and (min-height:601px) {
 #window-contact { top:5%; width:1020px; height:calc(100% - 170px); max-height:720px; }
 #window-contact.expanded { top:16px; height:calc(100% - 132px); width:calc(100% - 40px); max-height:none; }
}
.contact-copy { display:grid; grid-template-columns:.8fr 1.2fr; align-items:start; gap:40px; max-width:none; padding:32px 36px; }
.contact-copy h2 { font-size:clamp(38px,3.6vw,52px); margin:25px 0 18px; }
.contact-copy .lead { font-size:14px; line-height:1.75; max-width:30ch; }
.contact-emblem { display:flex; flex-direction:column; align-items:start; margin-top:27px; color:var(--accent); }
.contact-emblem>svg { width:170px; height:auto; filter:drop-shadow(0 10px 18px #74a7de26); }
.contact-emblem>span { font-size:12px; line-height:1.6; color:var(--muted); margin-top:13px; }
#contact-form { margin:0; gap:10px; min-width:0; }
#contact-form label { font-size:12px; gap:5px; line-height:1.4; }
#contact-form input,#contact-form select,#contact-form textarea { padding:9px 12px; font-size:13px; }
.form-pair { gap:14px; }
#contact-form textarea { min-height:86px; height:86px; resize:vertical; }
.contact-security { border:1px solid var(--line); border-radius:8px; padding:9px 12px; color:var(--muted); }
.security-heading { display:flex; align-items:center; gap:7px; color:var(--fg); font-size:11px; }
.security-heading svg { width:15px; height:15px; color:var(--accent); }
#contact-security-state { margin:5px 0 0; font-size:10px; line-height:1.5; }
#turnstile-slot { margin-top:8px; min-height:65px; }
.contact-submit { flex-wrap:wrap; gap:9px 14px; }
.contact-submit button { min-height:44px; font-size:12px; padding:10px 14px; background:linear-gradient(130deg,#a8c5e721,var(--switch)); }
.contact-submit button:disabled,#preview-flight:disabled { opacity:.55; cursor:wait; }
#preview-flight { display:flex; justify-content:space-between; align-items:center; gap:10px; text-align:left; padding:8px 0; min-height:36px; font-size:11px; color:var(--accent); }
#preview-flight>span { font-size:9px; color:var(--muted); }
#contact-result { margin:20px 0 0; padding:12px; font-size:12px; line-height:1.6; }
.carrier-flight-stage { position:fixed; inset:0; z-index:80; overflow:hidden; pointer-events:none; contain:layout paint; }
.carrier-flight { position:absolute; left:0; top:0; color:#d9edff; pointer-events:none; will-change:transform; filter:drop-shadow(0 5px 12px #060d2440) drop-shadow(0 0 10px #90c6ff50); }
.carrier-flight svg { width:100%; height:100%; }
.carrier-flight .bird-wing { transform-box:view-box; transform-origin:112px 82px; animation:carrier-wing .34s ease-in-out infinite; }
.carrier-flight .bird-wing-back { animation-delay:-.08s; }
.carrier-flight .bird-letter { transform-box:view-box; transform-origin:99px 100px; animation:carrier-letter .45s ease-in-out infinite alternate; }
@keyframes carrier-wing { 0%,100% { transform:scaleY(1) rotate(-3deg); } 50% { transform:scaleY(-.38) rotate(8deg); } }
@keyframes carrier-letter { from { transform:rotate(-5deg); } to { transform:rotate(7deg); } }
.delivery-toast { position:fixed; z-index:85; bottom:122px; right:28px; max-width:min(440px,calc(100% - 32px)); display:flex; align-items:center; gap:20px; border:1px solid var(--line); border-radius:14px; padding:17px 18px; background:var(--panel); color:var(--fg); box-shadow:0 12px 40px var(--shade); backdrop-filter:blur(20px); }
.delivery-toast p { margin:0; font-size:13px; line-height:1.6; }
.delivery-toast button { flex-shrink:0; min-width:40px; min-height:40px; border-radius:8px; }
.delivery-toast button:hover { background:var(--switch); }
@media(min-width:1100px) and (min-height:601px) and (max-height:830px) {
 .contact-copy { padding:20px 28px; gap:30px; }
 #contact-form { gap:7px; }
 .contact-copy h2 { margin-top:20px; font-size:43px; }
 .contact-emblem { margin-top:18px; }
 .contact-emblem>svg { width:140px; }
 #preview-flight { min-height:30px; padding:5px 0; }
}
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .contact-copy { grid-template-columns:1fr; gap:20px; padding:22px 24px 28px; }
 .contact-copy h2 { font-size:37px; margin:17px 0 12px; }
 .contact-copy .lead { max-width:none; font-size:14px; margin:0; }
 .contact-emblem { display:none; }
 .form-pair { grid-template-columns:1fr 1fr; gap:12px; }
 #contact-form { gap:13px; }
 #contact-form input,#contact-form select,#contact-form textarea { font-size:16px; padding:10px; }
 #contact-form textarea { height:95px; min-height:95px; }
 .contact-submit { position:sticky; bottom:94px; padding:10px; margin-inline:-10px; background:var(--panel); border:1px solid var(--line); border-radius:10px; z-index:2; }
 .contact-submit button { flex:1; justify-content:space-between; }
 .contact-submit>span { font-size:9px; }
 #contact-result { margin:14px 0 0; }
 .delivery-toast { right:16px; bottom:102px; }
}
@media(max-width:350px) { .form-pair { grid-template-columns:1fr; } }
/* Slow light across a quiet canvas; icon area stays clear. */
.ambience { background:radial-gradient(ellipse at 73% 34%,#739bc832,transparent 58%),radial-gradient(ellipse at 41% 92%,#385e9814,transparent 64%),linear-gradient(135deg,#0c131d0d,transparent 40%,#6586ad09); overflow:hidden; }
.ambience:before,.ambience:after { content:''; position:absolute; pointer-events:none; border-radius:50%; }
.ambience:before { width:72%; height:95%; left:27%; top:0; background:radial-gradient(ellipse,#8bcaff1a,transparent 65%); opacity:.48; animation:lightfield-breathe 14s ease-in-out infinite alternate; }
.ambience:after { width:80%; height:50%; left:17%; bottom:-15%; background:radial-gradient(ellipse,#497eb626,transparent 66%); opacity:.4; animation:lightfield-drift 19s ease-in-out infinite alternate; }
@keyframes lightfield-breathe { from { opacity:.4; transform:translate3d(-1%,1%,0) scale(.98); } to { opacity:.85; transform:translate3d(2%,-1%,0) scale(1.035); } }
@keyframes lightfield-drift { from { opacity:.25; transform:translate3d(-2%,0,0); } to { opacity:.58; transform:translate3d(3%,-3%,0); } }
.sculpture:before { inset:5% -2% -3%; background:radial-gradient(ellipse,#82bdff27,transparent 67%); }
/* Light uses the same light-field geometry and motion; only its atmosphere changes. */
[data-theme=light] .ambience { background:radial-gradient(ellipse at 86% 12%,#f8fcffb8,transparent 44%),radial-gradient(ellipse at 73% 34%,#82a9d26b,transparent 58%),radial-gradient(ellipse at 41% 92%,#698aaf38,transparent 64%),linear-gradient(135deg,#f8fbfd70,transparent 40%,#96adc52e); }
[data-theme=light] .ambience:before { background:radial-gradient(ellipse,#95bfff52,transparent 65%); }
[data-theme=light] .ambience:after { background:radial-gradient(ellipse,#527fae47,transparent 66%); }
.has-window .ambience:before,.has-window .ambience:after { animation-play-state:paused; }
[data-visibility=hidden] .ambience:before,[data-visibility=hidden] .ambience:after { animation-play-state:paused; }
/* Ice Flow is progressive; the existing light field is the static, theme-aware fallback. */
.ice-flow:before,.ice-flow:after { animation:none; }
.ice-flow-canvas { display:block; position:absolute; inset:0; width:100%; height:100%; pointer-events:none; visibility:hidden; }
.ice-flow[data-ice-flow=ready] .ice-flow-canvas { visibility:visible; }
.ice-flow[data-ice-flow=ready]:before,.ice-flow[data-ice-flow=ready]:after { content:none; }

/* Receiver-plane shadow. All dark casting comes from one shared light model. */
.sculpture { transform:none; transition:none; }
.sculpture:after { content:none!important; display:none!important; }
.sculpture:before { z-index:-2; }
.sculpture img { position:relative; z-index:1; transform-origin:50% 50%; transition:none; filter:drop-shadow(0 0 24px #a4d3ff20); }
.nb-shadow,.nb-shadow-fallback { position:absolute; z-index:0; pointer-events:none; }
.nb-shadow { max-width:none; }
.nb-shadow-fallback { left:0; top:0; width:100%; height:100%; transform-origin:0 0; background:#010306b8; mask-size:100% 100%; mask-repeat:no-repeat; }
.nb-shadow { filter:blur(1.5px); }

/* History belongs to the hero action row; both themes share the same placement. */
.desktop-update { display:flex; align-items:center; gap:10px; min-height:44px; padding:0 0 0 24px; border-left:1px solid var(--line); color:var(--muted); font-size:12px; text-decoration:none; }
.desktop-update strong { display:block; font-size:12px; color:var(--muted); font-weight:500; margin-bottom:4px; }
.update-copy { line-height:1.4; }
.update-copy time { color:var(--fg); font-size:12px; }
.desktop-update svg { width:14px; height:14px; }
.update-orbit { width:9px; height:9px; border-radius:50%; border:1px solid var(--accent); box-shadow:0 0 13px #a3caff26; flex-shrink:0; }
.website-timeline { list-style:none; margin:38px 0 0; padding:0; }
.website-timeline>li { display:grid; grid-template-columns:175px 1fr; gap:30px; padding:25px 0 30px; border-top:1px solid var(--line); }
.website-timeline time { color:var(--muted); font-size:12px; }
.website-timeline h3 { font-size:24px; margin:10px 0 16px; letter-spacing:-.04em; }
.website-timeline ul { padding-left:18px; color:var(--muted); font-size:13px; line-height:1.9; margin-bottom:18px; }
.history-empty { color:var(--muted); border-top:1px solid var(--line); padding-top:25px; margin-top:35px; font-size:13px; line-height:1.8; max-width:620px; }
.draft-banner { position:fixed; top:58px; left:50%; transform:translateX(-50%); z-index:100; padding:8px 17px; background:#bed7f2; color:#112338; border-radius:30px; font-size:11px; }
.store-access { margin:16px 0; }.store-rating { display:block; color:var(--muted); margin-top:12px; font-size:11px; }.store-rating small { display:block; margin-top:5px; }.rating-stars { position:relative; display:inline-block; color:#6c7a8c; letter-spacing:2px; margin-right:8px; }.rating-stars>span { position:absolute; top:0; left:0; white-space:nowrap; overflow:hidden; color:var(--accent); }
.spollow-gallery img { object-fit:contain; }
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) { .hero-actions { align-items:flex-start; column-gap:24px; row-gap:14px; }.desktop-update { padding-left:0; border-left:0; }.website-timeline>li{grid-template-columns:1fr;gap:12px}.draft-banner{width:max-content;max-width:90vw;top:72px}.website-timeline h3{font-size:21px} }

.project-chapter:not([data-product=spollow]) .spollow-brand-panel { background:radial-gradient(ellipse at 70% 20%,#7ca5dd20,transparent 65%),#111c29; }
.project-chapter .spollow-gallery img { aspect-ratio:4/9; object-fit:contain; }

/* Individual page composition inside one shared product world. */
.project-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:center; }
.project-page-copy,.project-page-media { min-width:0; }
.project-layout[data-layout=media-text] .project-page-media { order:-1; }
.project-layout[data-layout=media-wide] { grid-template-columns:1fr; align-items:start; }
.project-layout .spollow-features,.project-layout .spollow-plans { grid-template-columns:1fr; }
.project-layout .spollow-gallery { margin-inline:auto; }
.product-entry-preview { padding:36px; }
.product-entry-preview h2 { font-size:32px; letter-spacing:-.025em; margin:0 0 14px; }
.product-entry-preview h3 { font-size:17px; margin:0 0 20px; }
.entry-samples { display:grid; grid-template-columns:minmax(180px,.65fr) minmax(0,1fr); gap:36px; margin-top:32px; }
.entry-samples .product-grid { grid-template-columns:1fr; margin:0; }
.entry-desktop-sample { padding:30px; border-radius:16px; background:var(--panel); }
.entry-desktop-sample .desktop-icon { width:120px; margin:auto; }
.entry-note { margin-top:28px; color:var(--muted); font-size:13px; line-height:1.7; }
@media(max-width:1099px),(max-height:600px),(any-pointer:coarse) and (any-hover:none){
 .project-layout { grid-template-columns:1fr; gap:24px; }
 .project-layout[data-layout=media-text] .project-page-media { order:0; }
 .entry-samples { grid-template-columns:1fr; }
 .product-entry-preview { padding:24px; }
}

/* A chapter is a deliberate stop in the desktop window. The rail keeps its own generous targets. */
.window-scroll:has(>.project-chapter[data-paged=true]) { overflow:hidden; }
.project-chapter[data-paged=true] { position:relative; height:100%; min-height:0; overflow:hidden; }
.project-chapter[data-paged=true] .project-page-viewport { height:100%; overflow:auto; overscroll-behavior:contain; scrollbar-width:none; }
.project-chapter[data-paged=true] .project-page-viewport::-webkit-scrollbar { display:none; }
.project-chapter[data-paged=true] .project-page-track { position:relative; padding-right:56px; }
.project-chapter[data-paged=true] .spollow-body { display:contents; }
.project-chapter[data-paged=true] .project-scene { min-height:var(--project-page-height, 100%); scroll-margin-top:0; }
.project-chapter[data-paged=true] .spollow-section { padding:44px 36px; border-top:0; }
.project-chapter[data-paged=true] .spollow-hero { align-items:center; }
.project-chapter[data-paged=true] .spollow-brand-panel { min-height:min(420px,calc(var(--project-page-height) - 72px)); }
.project-chapter[data-paged=true] .project-navigation { display:none; }
.project-chapter[data-paged=true] .project-cover-scene,.project-chapter[data-paged=true] .project-release-scene,.project-chapter[data-paged=true] .project-closing { padding:38px 36px; }
.project-chapter[data-paged=true] .project-cover { margin:0; }
.project-chapter[data-paged=true] .cover-frame { max-height:calc(var(--project-page-height) - 120px); }
.project-chapter[data-paged=true] .spollow-gallery { max-width:450px; }
.project-chapter[data-paged=true] .spollow-gallery .phone-frame { max-height:min(320px,calc(var(--project-page-height) - 210px)); width:min(100%,144px); margin-inline:auto; }
.project-chapter[data-paged=true] .spollow-plans>section { padding:18px; }
.project-chapter[data-paged=true] .spollow-section:has(.spollow-plans) { padding-block:32px; }
.project-chapter[data-paged=true] .spollow-plans li { padding:7px 0; }
.project-rail { display:none; }
.project-chapter[data-paged=true] .project-rail { position:absolute; z-index:8; inset:0 0 0 auto; width:56px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:linear-gradient(90deg,transparent,var(--panel) 19%); }
.project-rail-count { display:grid; gap:3px; width:100%; text-align:center; margin-bottom:2px; }
.project-rail-count strong { font-size:10px; color:var(--fg); letter-spacing:.025em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.project-rail-count span { color:var(--muted); font-size:10px; line-height:1.35; overflow:hidden; }
.project-chapter[data-paged=true] .project-rail-count span { display:none; }
.project-rail-ticks { display:flex; flex-direction:column; align-items:center; max-height:calc(100% - 124px); overflow:auto; scrollbar-width:none; }
.project-rail-ticks::-webkit-scrollbar { display:none; }
.project-tick,.project-rail-step { display:grid; place-items:center; flex:none; width:44px; height:38px; color:var(--muted); border:0; background:transparent; cursor:pointer; }
.project-tick { position:relative; }
.project-chapter[data-paged=true] .project-tick:is(:hover,:focus-visible)::after { content:attr(title); position:absolute; z-index:12; right:calc(100% + 7px); top:50%; transform:translateY(-50%); width:max-content; max-width:min(240px,45vw); padding:8px 11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:1px solid var(--line); border-radius:7px; background:var(--panel); color:var(--fg); box-shadow:0 10px 24px var(--shade); font-size:11px; pointer-events:none; }
.project-tick span { display:block; width:14px; height:2px; border-radius:3px; background:currentColor; opacity:.53; transition:width .22s, height .22s, opacity .22s, background .22s; }
.project-tick[data-subpage=true] span { width:9px; opacity:.32; }
.project-tick:hover span,.project-tick:focus-visible span { width:25px; opacity:1; }
.project-tick[aria-current=page] { color:var(--accent); }
.project-tick[aria-current=page] span { width:27px; height:3px; opacity:1; box-shadow:0 0 10px color-mix(in srgb,var(--accent) 45%,transparent); }
.project-rail-step { font-size:19px; height:38px; }
.project-rail-step:disabled { opacity:.22; cursor:default; }
.project-tick:focus-visible,.project-rail-step:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; border-radius:7px; }

/* Touch keeps the complete reading flow and offers deliberate chapter jumps. */
.project-chapter[data-paged=false] { display:flex; flex-direction:column; }
.project-chapter[data-paged=false] .project-rail { display:flex; position:sticky; top:66px; z-index:8; order:0; align-items:center; gap:5px; min-height:55px; padding:4px 12px; background:var(--panel); border-block:1px solid var(--line); backdrop-filter:blur(18px); }
.project-chapter[data-paged=false] .project-page-viewport { order:1; }
.project-chapter[data-paged=false] .project-rail-count { margin:0; width:100px; flex:none; text-align:left; }
.project-chapter[data-paged=false] .project-rail-count span { display:block; white-space:nowrap; text-overflow:ellipsis; }
.project-chapter[data-paged=false] .project-rail-ticks { flex:1; min-width:0; max-height:none; flex-direction:row; overflow-x:auto; overflow-y:hidden; }
.project-chapter[data-paged=false] .project-tick,.project-chapter[data-paged=false] .project-rail-step { width:44px; height:44px; }
.project-chapter[data-paged=false] .project-navigation { top:121px; }
.project-chapter[data-paged=false] .project-scene { scroll-margin-top:115px; }
@media (min-width:1100px) and (min-height:601px) and (max-height:800px) {
 .project-chapter[data-paged=true] .spollow-section { padding:24px 36px; }
 .project-chapter[data-paged=true] .spollow-section h3 { font-size:clamp(28px,2.8vw,34px); margin:12px 0 15px; }
 .project-chapter[data-paged=true] .spollow-section p { line-height:1.68; }
 .project-chapter[data-paged=true] .spollow-design { gap:20px; }
 .project-chapter[data-paged=true] .spollow-design .spollow-gallery { gap:9px; }
 .project-chapter[data-paged=true] .spollow-gallery .phone-frame { max-height:calc(var(--project-page-height) - 166px); }
 .project-chapter[data-paged=true] .spollow-gallery figcaption { margin-top:6px; }
 .project-chapter[data-paged=true] .spollow-design .spollow-media-note { line-height:1.45; }
 .project-chapter[data-paged=true] .spollow-plans>section { padding:14px; }
 .project-chapter[data-paged=true] .spollow-plans h4 { margin:7px 0; }
 .project-chapter[data-paged=true] .spollow-plans .plan-model { margin-bottom:12px; }
 .project-chapter[data-paged=true] .spollow-plans li { padding:5px 0; line-height:1.5; }
 .project-chapter[data-paged=true] .spollow-plans+.spollow-note { margin-top:12px; line-height:1.5; }
}
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .window:has(.project-chapter[data-paged=false]) { overflow:visible; }
}

/* Product content: flexible quantity, fixed visual grammar. */
.project-navigation { position:sticky; top:0; z-index:4; margin:0 36px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; background:var(--panel); }
.project-navigation>span { color:var(--muted); font-size:10px; letter-spacing:.12em; }
.project-contents>summary { cursor:pointer; font-size:12px; list-style:none; display:flex; align-items:center; gap:16px; padding:9px 13px; background:var(--switch); border-radius:8px; }
.project-contents>summary:after { content:'⌄'; }.project-contents>summary>span{color:var(--muted);font-size:10px}
.project-nav-items { position:absolute; right:0; top:calc(100% + 5px); width:min(390px,100%); max-height:50vh; overflow:auto; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--panel); box-shadow:0 18px 45px var(--shade); backdrop-filter:blur(24px); }
.project-nav-items a { display:block; padding:11px 12px; color:var(--muted); font-size:12px; border-radius:7px; }
.project-nav-items a:hover,.project-nav-items a:focus-visible { color:var(--fg); background:var(--switch); }
.chapter-group { margin:6px 0; padding:6px 12px; }.chapter-group summary{font-size:12px;cursor:pointer;color:var(--fg);padding:7px 0}.chapter-group a{padding-left:15px}
.spollow-section,.release-notes { scroll-margin-top:78px; }.spollow-design{align-items:start}
.project-cover { margin:30px 36px; }.image-open{display:block;width:100%;text-align:left;padding:0;color:inherit}
.cover-frame,.phone-frame { display:block; overflow:hidden; background:var(--switch); border:1px solid var(--line); }
.cover-frame { aspect-ratio:16/9; border-radius:16px; }.cover-frame img{width:100%;height:100%;object-fit:contain}
.phone-frame { aspect-ratio:9/20; border-radius:22px; padding:5px; box-shadow:0 10px 30px #00000018; }
.spollow-gallery .phone-frame img { border:0; width:100%; height:100%; object-fit:contain; border-radius:17px; background:transparent; }
.image-caption { display:flex; justify-content:space-between; gap:10px; font-size:11px; line-height:1.65; color:var(--muted); margin-top:12px; }
.image-caption>span{color:var(--accent);font-size:15px}.image-open:hover .phone-frame,.image-open:hover .cover-frame{border-color:var(--accent)}
.gallery-more { grid-column:1/-1; width:100%; font-size:12px; padding:13px; border:1px solid var(--line); border-radius:10px; background:var(--switch); color:var(--fg); }
.access-link { display:block; margin-top:15px; }
.image-viewer { background:var(--panel); color:var(--fg); border:1px solid var(--line); border-radius:18px; padding:16px; width:min(1100px,94vw); max-width:94vw; height:92svh; max-height:92svh; overflow:hidden; }
.image-viewer::backdrop { background:#07111bdc; backdrop-filter:blur(18px); }.image-viewer header{display:flex;justify-content:space-between;align-items:center;gap:12px;height:44px;font-size:12px}.image-viewer header>div{display:flex;align-items:center;gap:18px}.image-viewer button{color:var(--fg);font:inherit;min-height:40px;padding:0 10px;border-radius:8px}.image-viewer button:hover{background:var(--switch)}.image-count{color:var(--muted)}.image-original{color:var(--accent);font-size:11px}.image-stage{height:calc(100% - 109px);overflow:auto;display:flex;align-items:center;justify-content:center;padding:16px}.image-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:9px}.image-viewer.zoomed .image-stage{display:block}.image-viewer.zoomed .image-stage img{max-width:none;max-height:none;border-radius:0}.image-viewer footer{display:flex;align-items:center;gap:20px;justify-content:space-between;height:65px;font-size:11px}.image-description{max-width:78%;color:var(--muted);line-height:1.6;text-align:center}.image-viewer [data-image-prev] svg{transform:rotate(180deg)}.image-viewer button:disabled{opacity:.2;cursor:default}.image-viewer a:focus-visible,.image-viewer button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.release-entry>summary { cursor:pointer; display:flex; justify-content:space-between; gap:20px; padding:18px 0; font-size:14px; }.release-entry small{display:block;font-size:11px;color:var(--muted);margin-top:7px}.release-intro,.release-summary{font-size:13px;color:var(--muted);line-height:1.8}.release-entry time{font-size:11px;white-space:nowrap;color:var(--muted)}
/* The history remains a secondary link, with a visible pointer and keyboard cue. */
.update-action { display:flex; align-items:center; gap:6px; color:var(--accent); font-size:10px; margin-left:4px; white-space:nowrap; }
.update-action svg { transition:transform .2s; }
.desktop-update:hover .update-action { text-decoration:underline; text-underline-offset:4px; }
.desktop-update:hover .update-action svg { transform:translateX(3px); }
.desktop-update:focus-visible { outline:2px solid var(--accent); outline-offset:5px; border-radius:3px; }
.launcher-update-date{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.history-controls{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:14px;margin-top:30px}.history-controls label{color:var(--muted);font-size:10px}.history-controls input,.history-controls select{display:block;width:100%;padding:11px 12px;background:var(--switch);color:var(--fg);border:1px solid var(--line);border-radius:9px;font:inherit;font-size:12px;margin-top:7px;min-width:0}.history-controls option{background:var(--bg);color:var(--fg)}.history-toolbar{display:flex;align-items:center;gap:20px;margin:18px 0;color:var(--muted);font-size:10px;flex-wrap:wrap}.history-toolbar>span{margin-right:auto}.history-toolbar button{color:var(--accent);padding:8px 0;font:inherit}.website-timeline>li>details{min-width:0}.website-timeline summary{cursor:pointer;list-style:none}.website-timeline summary h3:after{content:'⌄';margin-left:12px;font-size:15px;color:var(--muted)}.website-timeline li>details:not([open]) summary h3:after{content:'＋'}.history-no-results{font-size:13px;color:var(--muted);padding:28px 0}.history-more{border:1px solid var(--line);border-radius:9px;padding:12px 18px;color:var(--fg);font:inherit;font-size:12px}
@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none){.project-navigation{margin:0 24px;top:66px}.project-cover{margin:24px}.phone-frame{border-radius:19px;padding:4px}.image-viewer{width:96vw;max-width:96vw;height:92svh;padding:11px}.image-viewer header>div{gap:6px}.image-viewer header button{font-size:10px}.image-original{display:none}.history-controls{grid-template-columns:1fr 1fr;gap:12px}.history-search{grid-column:1/-1}.history-toolbar{gap:12px}.release-entry>summary{flex-wrap:wrap;gap:9px}.project-nav-items{max-height:45svh}}

.store-access{min-width:0}.store-badge{display:inline-flex;align-items:center;justify-content:center;min-height:72px;padding:12px;line-height:0}.store-badge.app-store img{height:44px;width:auto;max-width:100%;border:0;background:none}.store-badge.google-play{padding:0 6px}.store-badge.google-play img{height:68px;width:auto;max-width:100%;border:0;background:none}.store-credits{font-size:10px;color:var(--muted);line-height:1.8;padding:0 48px 24px;max-width:850px}@media(max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none){.store-credits{padding:0 24px 24px}}
.theme-caption,.mobile-return { display:none; }
.menu-home,.menu-close,.menu-scrim { display:none; }
.launcher>.menu-home { display:none; }
/* Compact visitor navigation: the same routes and content, without a window dock. */
@media (max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .desktop-icons,.desktop-icons.drag-ready { display:none!important; }
 .workspace { min-height:0; height:calc(100dvh - 96px - env(safe-area-inset-bottom,0px)); overflow:auto; padding-bottom:24px; scroll-padding-top:80px; scroll-padding-bottom:24px; }
 .desktop-header { position:relative; inset:auto; margin:20px 24px 0; }
 .hero { position:relative; inset:auto; margin:38px 24px 0; }
 .hero h1 { font-size:clamp(56px,15.5vw,110px); }
 .header-category { display:none; }
 .sculpture { position:relative; inset:auto; width:210px; max-width:56vw; margin:12px auto 8px; }
 .mobile-products { display:block; position:relative; margin:12px 24px 0; }
 .taskbar { position:fixed; inset:auto 12px calc(12px + env(safe-area-inset-bottom,0px)); transform:none; width:auto; max-width:none; display:grid; grid-template-columns:minmax(72px,1fr) minmax(78px,1fr) minmax(92px,1fr); min-height:72px; gap:8px; padding:10px 14px; }
 #running-apps,.taskbar .clock,.taskbar .brand-icon,.taskbar .theme-control>svg,.taskbar #theme-label { display:none; }
 .launcher-toggle { min-height:44px; padding:0 10px; justify-content:center; border:1px solid var(--line); border-radius:10px; font-size:13px; background:var(--switch); }
 .launcher-toggle>span:not(.brand-icon) { display:inline; }
 .motion-control,.theme-control { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; margin:0; font-size:10px; line-height:14px; color:var(--muted); }
 .motion-control>span,.theme-control>.theme-caption { display:block; min-width:0; height:14px; font-size:10px; line-height:14px; white-space:nowrap; }
 #motion-toggle,.theme-control input { width:42px; height:28px; margin:0; }
 #motion-toggle { padding:4px; }
 #motion-toggle[aria-checked=true] .motion-thumb { translate:14px 0; }
 .launcher { position:fixed; left:12px; bottom:calc(96px + env(safe-area-inset-bottom,0px)); width:380px; max-width:calc(100% - 24px); max-height:calc(100svh - 120px); }
 .launcher>a>svg,.launcher>a>.brand-icon,.launcher-heading>.brand-icon { display:none; }
 .launcher>a { min-height:48px; font-size:15px; }
 #reset-layout { display:none; }
 .window,.window.expanded { position:relative; inset:auto; transform:none; width:100%; max-width:none; height:auto; min-height:calc(100svh - 120px); max-height:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; }
 .window:not(.active) { display:none; }
 .window-scroll { height:auto; overflow:visible; }
 .window-actions,.window-title>.app-icon,.window-title>.brand-icon,.window-title>svg { display:none; }
 .window-bar { position:sticky; top:0; z-index:5; height:64px; padding:0 24px; background:var(--panel); }
 .mobile-return { display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 12px; border:1px solid var(--line); border-radius:9px; font-size:12px; }
 .has-window .desktop-header,.has-window .hero,.has-window .sculpture,.has-window .mobile-products,.has-window .desktop-update { display:none; }
 .desktop-legal { position:relative; inset:auto; margin:24px; }
 .desktop-hint { display:none; }
 .header-contact,.desktop-legal a { min-height:44px; display:inline-flex; align-items:center; }
 .project-navigation { top:64px; }
 html { scroll-padding-top:80px; scroll-padding-bottom:calc(110px + env(safe-area-inset-bottom,0px)); }
}

/* Touch edition: shared content, deliberate mobile proportions and generous controls. */
@media (max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .workspace { height:calc(var(--compact-viewport,100dvh) - 108px - env(safe-area-inset-bottom,0px)); overscroll-behavior-y:contain; }
 .hero { margin-top:28px; }
 .hero h1 { font-size:clamp(48px,15.5vw,110px); margin-bottom:20px; }
 .claim { font-size:clamp(28px,7.5vw,36px); line-height:1.25; }
 .hero-description { font-size:14px; margin-top:12px; }
 .hero-actions { gap:12px 20px; margin-top:24px; }
 .hero-discover { min-height:48px; padding:0 16px; border:1px solid var(--line); border-radius:12px; background:var(--switch); font-size:13px; gap:18px; }
 .desktop-update { gap:8px; min-height:48px; }
 .update-action { font-size:11px; margin-left:0; }
 .sculpture { width:180px; max-width:52vw; margin:14px auto 12px; }
 .mobile-products { margin-top:16px; }
 .mobile-products>.eyebrow { display:block; margin-bottom:16px; }
 .mobile-products>a { border:1px solid var(--line); background:var(--switch); border-radius:16px; padding:18px 16px; margin-top:10px; gap:14px; }
 .mobile-products>a strong { font-size:16px; }
 .mobile-products>a span>span { font-size:13px; line-height:1.65; }
 .mobile-products>a .status { font-size:11px; margin-top:8px; }
 .mobile-products>a>img,.mobile-products>a>.brand-icon,.mobile-products>a>svg:first-child { width:44px; height:44px; flex-shrink:0; object-fit:contain; }
 .taskbar { min-height:84px; padding:8px 12px; gap:8px; border-radius:20px; }
 .launcher-toggle { min-height:48px; }
 .motion-control,.theme-control { gap:2px; }
 #motion-toggle,.theme-control input { width:52px; height:44px; }
 #motion-toggle { background:transparent; padding:12px 4px; position:relative; }
 #motion-toggle:before { content:''; position:absolute; inset:8px 0; background:var(--switch); border:1px solid var(--line); border-radius:30px; }
 #motion-toggle .motion-thumb { position:relative; width:20px; height:20px; }
 #motion-toggle[aria-checked=true] .motion-thumb { translate:24px 0; }
 .theme-control input { background:transparent; }
 .theme-control input::-webkit-slider-runnable-track { height:28px; border-radius:30px; background:var(--switch); border:1px solid var(--line); }
 .theme-control input::-webkit-slider-thumb { width:20px; height:20px; margin-top:3px; }
 .theme-control input::-moz-range-track { height:26px; border-radius:30px; background:var(--switch); border:1px solid var(--line); }
 .theme-control input::-moz-range-thumb { width:20px; height:20px; }
 .menu-scrim { display:block; position:fixed; inset:0; z-index:39; background:#050d18a6; backdrop-filter:blur(8px); }
 .launcher { z-index:40; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom,0px)); width:auto; max-width:540px; margin-inline:auto; max-height:calc(100dvh - 32px - env(safe-area-inset-bottom,0px)); padding:16px; border-radius:24px; overflow:auto; overscroll-behavior:contain; }
 .launcher-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:0 4px 12px; font-size:13px; }
 .menu-close { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:12px; flex-shrink:0; }
 .launcher>.menu-home { display:flex; }
 .launcher>a { padding:14px; min-height:52px; border-radius:12px; font-size:15px; }
 .launcher>a[aria-current=page] { background:var(--switch); color:var(--accent); font-weight:600; }
 .launcher>a[aria-current=page]:after { content:attr(data-current-label); margin-left:auto; font-size:12px; font-weight:500; }
 .launcher-legal { display:flex; flex-wrap:wrap; gap:8px 24px; padding:12px 14px 0; margin-top:12px; border-top:1px solid var(--line); }
 .launcher-legal a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; }
 .window-title { min-width:0; font-size:13px; }
 .window-bar { gap:12px; }
 .window-scroll { overflow-wrap:anywhere; }
 .spollow-hero { padding:32px 24px; gap:28px; }
 .spollow-intro h2 { margin-top:20px; }
 .spollow-opening,.spollow-section p,.spollow-features p,.spollow-steps p { font-size:15px; line-height:1.8; }
 .spollow-brand-panel { min-height:210px; padding:24px; gap:10px; }
 .spollow-brand-panel .product-signet { width:76px; }
 .spollow-brand-panel .product-wordmark { width:160px; }
 .spollow-brand-panel .eyebrow { margin-bottom:0; }
 .spollow-brand-panel p { font-size:15px; }
 .spollow-section { padding:36px 0; }
 .project-navigation { gap:10px; }
 .project-contents>summary { min-height:44px; font-size:13px; }
 .project-nav-items a,.chapter-group summary { min-height:44px; font-size:14px; display:flex; align-items:center; }
 .text-link,.spollow-actions>a,.access-link,.story-discover { min-height:44px; display:inline-flex; align-items:center; }
 .product-actions>a,.case-footer>a { min-height:44px; }
 .spollow-faq summary,.status-legend summary,.release-entry>summary { min-height:48px; font-size:15px; }
 .story-text p,.name-story dd,.story-outro,.catalog-copy .lead { font-size:15px; line-height:1.85; }
 .contact-copy { padding:28px 24px; gap:28px; }
 #contact-form label { font-size:13px; }
 #contact-form input,#contact-form select { min-height:48px; }
 #contact-form textarea { min-height:140px; resize:vertical; }
 .contact-submit { position:static; margin:4px 0 0; padding:14px; flex-direction:column; align-items:stretch; gap:12px; }
 .contact-submit button { min-height:48px; font-size:14px; flex-shrink:0; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
 .contact-submit>span { font-size:11px; }
 #preview-flight { min-height:48px; font-size:12px; }
 .contact-privacy { font-size:12px; line-height:1.8; }
 #contact-result { padding:16px; font-size:14px; border:1px solid var(--accent); border-radius:12px; }
 .history-controls input,.history-controls select { font-size:16px; min-height:48px; }
 .history-toolbar button,.history-more { min-height:44px; }
 .image-viewer { display:grid; grid-template-rows:auto minmax(0,1fr) auto; padding:12px; height:94dvh; max-height:94dvh; border-radius:20px; }
 .image-viewer:not([open]) { display:none; }
 .image-viewer header { height:auto; flex-wrap:wrap; gap:4px 12px; }
 .image-viewer header>div { gap:4px; margin-left:auto; }
 .image-viewer button { min-height:44px; min-width:44px; }
 .image-original { display:inline-flex; align-items:center; min-height:44px; padding:0 8px; font-size:11px; }
 .image-stage { height:auto; min-height:0; padding:12px; }
 .image-viewer footer { height:auto; min-height:64px; gap:8px; }
 .image-description { font-size:11px; }
 .desktop-legal { display:flex; gap:24px; }
 html[data-keyboard=open] .taskbar { display:none; }
 html[data-keyboard=open] .workspace { height:var(--compact-viewport,100dvh); }
}
@media (min-width:700px) and (max-width:1099px), (min-width:700px) and (any-pointer:coarse) and (any-hover:none) {
 .desktop-header,.hero,.mobile-products,.desktop-legal { margin-left:max(40px,calc((100vw - 1000px)/2)); margin-right:max(40px,calc((100vw - 1000px)/2)); }
 .workspace:not(.has-window) { display:grid; grid-template-columns:1.15fr .85fr; align-content:start; }
 .desktop-header,.mobile-products,.desktop-legal { grid-column:1/-1; }
 .hero { margin-right:0; margin-top:60px; }
 .hero h1 { font-size:clamp(78px,11vw,110px); }
 .sculpture { width:clamp(220px,30vw,350px); max-width:100%; align-self:center; margin-top:60px; }
 .mobile-products { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:40px; }
 .mobile-products>.eyebrow { grid-column:1/-1; margin:0; }
 .mobile-products>a { margin:0; }
 .mobile-products>a:first-of-type { grid-column:1/-1; }
 .taskbar { width:420px; left:50%; right:auto; transform:translateX(-50%); }
 .window-scroll { max-width:1060px; margin-inline:auto; }
 .spollow-hero { grid-template-columns:1.2fr .8fr; gap:32px; padding:44px 40px; }
 .spollow-intro h2 { font-size:clamp(36px,6vw,54px); }
 .spollow-brand-panel { min-height:290px; }
 .spollow-body,.store-credits { padding-left:40px; padding-right:40px; }
 .project-navigation { margin-inline:40px; }
 .spollow-features,.spollow-steps,.spollow-plans { grid-template-columns:1fr 1fr; gap:28px; }
 .spollow-testing { grid-template-columns:1.15fr .85fr; gap:28px; }
 .spollow-gallery { max-width:560px; }
 .story-copy,.catalog-copy,.contact-copy { padding:44px 40px; }
 .story-text { max-width:720px; }
 .contact-copy { grid-template-columns:.9fr 1.1fr; gap:36px; }
 .contact-emblem { display:flex; }
 .product-grid { grid-template-columns:1fr 1fr; }
}
@media (max-height:500px) and (min-width:700px) {
 .hero { margin-top:24px; }
 .sculpture { margin-top:24px; }
 .taskbar { min-height:76px; }
 .workspace { height:calc(var(--compact-viewport,100dvh) - 100px - env(safe-area-inset-bottom,0px)); }
}

/* Mobile dock: continuous canvas, softly fading reading edge, shared nb entry. */
#mobile-theme-toggle { display:none; }
@media (max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .workspace { height:var(--compact-viewport,100dvh); padding-bottom:calc(108px + env(safe-area-inset-bottom,0px)); scroll-padding-bottom:calc(108px + env(safe-area-inset-bottom,0px)); }
 .workspace:after { content:''; position:fixed; z-index:25; pointer-events:none; left:0; right:0; bottom:0; height:calc(112px + env(safe-area-inset-bottom,0px)); background:linear-gradient(to bottom,transparent,var(--bg)); }
 .taskbar { display:flex; justify-content:space-between; gap:20px; min-height:66px; padding:10px 16px; border-radius:20px; border-color:#c4d8ef26; background:#192332b8; backdrop-filter:blur(24px) saturate(125%); box-shadow:inset 0 1px 0 #d5e6fa08,0 8px 32px #050a1738; }
 [data-theme=light] .taskbar { background:#f7fbffb8; border-color:#536e912b; box-shadow:inset 0 1px 0 #fff8,0 8px 32px #2439501c; }
 .taskbar .motion-control { display:none; }
 .taskbar .launcher-toggle { justify-content:flex-start; min-width:88px; min-height:44px; padding:4px; gap:9px; font-size:11px; border:0; background:transparent; border-radius:9px; }
 .taskbar .launcher-toggle>.brand-icon { display:block; width:32px; height:32px; }
 .taskbar .theme-control { flex-direction:row; gap:10px; }
 .taskbar .theme-caption { height:auto; font-size:11px; line-height:1.4; }
 .taskbar .theme-control input { display:none; }
 #mobile-theme-toggle { display:block; position:relative; width:44px; height:44px; padding:0; flex-shrink:0; border:0; background:none; }
 #mobile-theme-toggle:before { content:''; position:absolute; inset:10px 0; border:1px solid var(--line); border-radius:24px; background:var(--switch); }
 #mobile-theme-toggle>span { position:absolute; width:18px; height:18px; top:13px; left:3px; background:var(--fg); border-radius:50%; box-shadow:0 1px 4px #0003; transition:transform .18s ease; }
 #mobile-theme-toggle[aria-checked=true]>span { transform:translateX(20px); }
 [data-motion=reduced] #mobile-theme-toggle>span { transition:none; }
 .taskbar .theme-control input::-webkit-slider-runnable-track { height:24px; border:1px solid var(--line); border-radius:24px; background:var(--switch); box-shadow:none; }
 .taskbar .theme-control input::-webkit-slider-thumb { height:18px; width:18px; margin-top:2px; }
 .taskbar .theme-control input::-moz-range-track { height:22px; border:1px solid var(--line); border-radius:24px; background:var(--switch); }
 .taskbar .theme-control input::-moz-range-thumb { height:18px; width:18px; }
 html[data-keyboard=open] .workspace:after { display:none; }
}
/* Language is always a first-class, keyboard-accessible dock control. */
.language-control{display:flex;align-items:center;gap:7px;flex-shrink:0;padding:0 8px;border-left:1px solid var(--line);color:var(--fg)}
.language-control svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;opacity:.9}
.language-control select{color:var(--fg);background:transparent;font:inherit;font-size:12px;min-height:44px;border:0;border-radius:8px;padding:0 6px;cursor:pointer;width:91px;color-scheme:dark}
.language-control select option{color:var(--fg);background:var(--bg)}
[data-theme=light] .language-control select{color-scheme:light}
.language-control select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.translation-fallback,.legal-review-note{font-size:12px;line-height:1.7;padding:16px 20px;border:1px solid var(--line);border-radius:12px;color:var(--muted);margin:20px 24px}
.legal-copy{max-width:820px;margin:auto}.legal-copy>section{margin:36px 0}.legal-copy h3{font-size:20px;line-height:1.5}.legal-copy p{line-height:1.85;overflow-wrap:anywhere}.legal-copy a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.legal-copy .legal-review-note{margin:24px 0}
.legal-copy>h2,.legal-no-script h1{font-size:clamp(28px,4vw,48px);line-height:1.2;overflow-wrap:normal;hyphens:auto}
.legal-no-script{position:fixed;inset:0;overflow:auto;padding:32px 24px;background:var(--bg);color:var(--fg)}
.legal-no-script .legal-copy{padding:0}.legal-no-script section{margin:36px 0}.legal-no-script section h2{font-size:22px;line-height:1.5}
@media (max-width:1099px),(max-height:600px),(any-pointer:coarse) and (any-hover:none){
 .taskbar{gap:8px;padding-inline:12px}
 .language-control{border:0;padding:0;gap:3px}
 .language-control svg{width:18px;height:18px}
 .language-control select{width:88px;padding-inline:3px;font-size:12px}
 .taskbar .launcher-toggle{min-width:44px;justify-content:center;padding:0}
 .taskbar .launcher-toggle>span:not(.brand-icon){display:none}
 .taskbar .theme-control{gap:6px}
 .taskbar .theme-caption{max-width:42px;white-space:normal;font-size:10px}
 .legal-copy{padding:28px 24px}
}
@media (max-width:1099px),(max-height:600px),(any-pointer:coarse) and (any-hover:none){
 .taskbar .launcher-toggle{flex-direction:column;gap:0;min-width:44px;line-height:1.2}
 .taskbar .launcher-toggle>.brand-icon{width:28px;height:28px}
 .taskbar .launcher-toggle>span:not(.brand-icon){display:block;font-size:10px;line-height:14px}
}
@media (min-width:1100px) and (min-height:601px) {
 .window.window-positioned:not(.expanded),#window-contact.window-positioned:not(.expanded) { left:var(--window-x); top:var(--window-y); transform:none; }
}
@media (max-width:1099px),(max-height:600px),(any-pointer:coarse) and (any-hover:none) {
 .window.window-positioned:not(.expanded),#window-contact.window-positioned:not(.expanded) { inset:auto; transform:none; }
 .window-bar { cursor:auto; user-select:auto; }
}

/* Shared nb. geometry, theme ink and blue accent on every symbol. */
[data-theme=light] .brand-icon { background-image:url('/public/brand/lichtfeld/needbuilt-mark-on-light.svg'); }

/* Half-size canonical sculpture; the shared renderer measures this same caster. */
@media(min-width:1100px) and (min-height:601px){.sculpture{width:325px;max-width:24vw;right:12%;top:27%}}
@media(min-width:1800px) and (min-height:601px){.sculpture{width:400px;right:14%}}
@media(max-width:1099px),(max-height:600px){.sculpture{width:150px;max-width:35vw}}
.sculpture img{filter:none}
[data-motion=reduced] .glass-glint{display:none}
@media(prefers-reduced-motion:reduce){.glass-glint{display:none}}
[data-text-color]{color:var(--text-dark)!important}
[data-theme=light] [data-text-color]{color:var(--text-light)!important}
.admin-return{position:fixed;right:24px;top:22px;z-index:90;padding:10px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:13px;color:var(--fg)}
.shop-payment [data-shop-checkout][hidden],.checkout-forward [hidden]{display:none}.garmin-shop a.shop-primary{color:var(--bg);margin:0 8px 8px 0}.checkout-forward{max-width:680px;margin:12vh auto;padding:24px;line-height:1.65}.checkout-forward h1{font-size:clamp(26px,4vw,36px);line-height:1.2;letter-spacing:-.02em}.checkout-forward p{font-size:16px}
@media(max-width:1099px),(max-height:600px),(any-pointer:coarse) and (any-hover:none){.workspace:has(.admin-return) .window-bar{padding-right:144px}.admin-return{top:10px;right:24px;min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center;line-height:1.3;text-decoration:none}}
.admin-return:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Shared website symbols use the same blue in both themes. Product masters remain untouched. */
svg.ui-symbol{color:var(--accent)}

/* Compact shared catalog rows: the app identity and its short description stay together. */
.product-grid{grid-template-columns:1fr;gap:12px;margin-top:24px}
.product-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 20px;background:var(--switch);border-radius:12px;min-height:88px;transition:border-color .2s,background .2s}
.product-card:hover{translate:none;border-color:var(--accent)}
.product-card .catalog-icon{width:48px;height:48px;object-fit:contain;border-radius:10px}
.catalog-body{min-width:0}
.catalog-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.product-card h3{font-size:18px;line-height:1.3;letter-spacing:-.02em;margin:0}
.window-scroll .product-card p,.product-card p{font-size:13px;line-height:1.6;margin:5px 0 0;max-width:70ch;overflow-wrap:anywhere}
.product-card .status{font-size:11px;white-space:nowrap}
.catalog-open{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap;color:var(--accent)}
.catalog-open svg{width:18px;height:18px}
@media(max-width:700px){.product-card{grid-template-columns:44px minmax(0,1fr) 18px;padding:14px;gap:12px}.product-card .catalog-icon{width:44px;height:44px}.catalog-open>span{display:none}.catalog-heading{gap:6px 12px}.product-card h3{font-size:17px}}
/* Reflected softboxes and short edge caustics, registered to the same material alpha. */
.sculpture .glass-reflection{position:absolute;inset:0;z-index:2;pointer-events:none;mask-image:url('/assets/nb-unified-glass-1200.webp');mask-size:100% 100%;mask-repeat:no-repeat;mix-blend-mode:screen;background:linear-gradient(125deg,transparent 18%,#b9e5ff18 38%,transparent 44%,#f0fbff30 49%,transparent 55%);opacity:.24;transform-origin:50% 50%}
.glass-reflection::before{content:'';position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 42%,#d8f4ff18 46%,#f4fdffb0 49%,#ffffffeb 50%,#d8f3ff28 52%,transparent 57%);transform:translateX(-65%);animation:ice-softbox-pass 14s cubic-bezier(.22,1,.36,1) infinite;animation-delay:-9s;will-change:transform}
.sculpture .glass-glint{position:absolute;left:var(--glint-x);top:var(--glint-y);width:23px;height:5px;border-radius:50%;background:radial-gradient(ellipse,#ffffff 0 8%,#c7eeffb0 26%,transparent 72%);opacity:0;transform:translate(-50%,-50%) rotate(-28deg);animation:ice-edge-flash 11s ease-out infinite;animation-delay:-7.4s}
.sculpture .glass-glint:nth-child(2){width:17px;animation-delay:5.5s;transform:translate(-50%,-50%) rotate(55deg)}
@keyframes ice-softbox-pass{0%,68%{transform:translateX(-65%);opacity:0}72%{opacity:.8}90%{transform:translateX(65%);opacity:.35}94%,100%{transform:translateX(65%);opacity:0}}
@keyframes ice-edge-flash{0%,68%,77%,100%{opacity:0}70%{opacity:.95}72%{opacity:.2}74%{opacity:.7}}
.sculpture[data-glass-motion=paused] .glass-reflection::before,.sculpture[data-glass-motion=paused] .glass-glint{animation-play-state:paused;opacity:0}
@media(prefers-reduced-motion:reduce){.glass-reflection::before,.glass-glint{animation:none!important;display:none}}
[data-motion=reduced] .glass-reflection::before,[data-motion=reduced] .glass-glint{animation:none!important;display:none}

/* Clean device system: original pixels in a minimal, front-facing frame. */
.phone-device{--screen-ratio:1080/2340;display:block;position:relative;width:100%;padding:6px;border:0;border-radius:34px;background:linear-gradient(130deg,#677584,#111820 24%,#485867 52%,#111820 78%,#6c7d8e);box-shadow:0 18px 40px #0004;color:var(--fg);cursor:zoom-in;isolation:isolate;transform-origin:0 0}
.phone-device::before{content:"";position:absolute;right:-2px;top:20%;width:3px;height:12%;border-radius:2px;background:#637282;z-index:-1}
.phone-device-glass{display:block;padding:2px;background:#05090d;border-radius:29px;overflow:hidden}
.phone-device .phone-screen-content{display:block;width:100%;height:auto;aspect-ratio:var(--screen-ratio);object-fit:contain;border-radius:27px;background:#05090d}
.phone-device[data-phone-pose=angled]{transform:rotate(3deg)}
.phone-device:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.phone-device:hover{box-shadow:0 22px 46px #0005}
.photographic-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,4vw,64px);align-items:center;padding:30px 42px;min-height:var(--project-page-height,600px)}
.photo-hero-copy{min-width:0}.photo-hero-wordmark{display:block;width:120px;height:auto;max-height:44px;object-fit:contain;object-position:left;margin-bottom:20px}
.photographic-hero h2{font-size:clamp(32px,3.6vw,48px);line-height:1.08;letter-spacing:-.03em;margin:0 0 22px;text-wrap:balance}
.photographic-hero .lead{font-size:16px;line-height:1.65;margin:0;max-width:45ch}
.photo-hero-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin:12px 0 18px}
.photo-hero-links a{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--accent);font-size:13px;text-decoration:underline;text-underline-offset:5px}
.photo-hero-links svg{width:15px;height:15px}
.photo-hero-detail{display:grid;grid-template-columns:minmax(0,165px) minmax(0,1fr);gap:22px;align-items:center;margin-top:22px}
.photo-hero-detail:not(:has(.hero-widget)){display:block}.photo-hero-detail p{font-size:14px;line-height:1.7;margin:0 0 16px;max-width:42ch}
.hero-widget{margin:0}.hero-widget button{display:block;border:0;padding:0;background:none;border-radius:20px;cursor:zoom-in}.hero-widget img{display:block;width:100%;height:auto;border-radius:20px;box-shadow:0 14px 35px #0002}.hero-widget figcaption{margin-top:10px;font-size:11px;color:var(--muted);line-height:1.5}
.photo-hero-visual{width:100%;max-width:300px;justify-self:center;min-width:0;position:relative}
.photo-evidence{font-size:11px!important;line-height:1.55!important;color:var(--muted);text-align:center;margin:12px 0 0!important}
.photographic-gallery{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,140px);align-items:center;column-gap:22px;width:100%;max-width:470px;margin-inline:auto}
.photographic-gallery:not(:has(.photo-gallery-controls)){grid-template-columns:1fr;max-width:300px}
.photo-gallery-stage{width:100%;max-width:300px;justify-self:center;min-width:0}
.photo-gallery-stage{touch-action:pan-y pinch-zoom}
.photo-gallery-controls{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}
.photo-screen-choice{display:flex;align-items:center;gap:10px;text-align:left;min-height:44px;padding:8px 0;background:transparent;border:0;color:var(--muted);font:inherit;font-size:12px;line-height:1.5;cursor:pointer;overflow-wrap:anywhere;transition:color 160ms ease-out}
.photo-choice-mark{display:block;flex:0 0 2px;height:30px;border-radius:2px;background:var(--line);transform:scaleY(.66);transition:background 160ms ease-out,transform 160ms ease-out}
.photo-screen-choice[aria-pressed=true]{color:var(--accent)}.photo-screen-choice[aria-pressed=true] .photo-choice-mark{background:var(--accent);transform:scaleY(1)}
.photo-screen-choice:hover{color:var(--fg)}.photo-screen-choice:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}
.photo-gallery-caption{grid-column:1/-1;font-size:12px;line-height:1.6;text-align:center;margin:16px 0 0;color:var(--muted)}
.photographic-gallery .photo-evidence{grid-column:1/-1}
.marketing-store{display:inline-flex;align-items:center;gap:12px;padding:10px 16px;min-height:52px;border-radius:12px;background:var(--switch);color:var(--fg);font-size:14px;text-decoration:none}
.marketing-store svg{width:24px;height:24px;color:var(--accent)}.marketing-store small{display:block;font-size:11px;color:var(--muted);line-height:1.5;margin-top:2px}.marketing-store-pending{cursor:default}
.marketing-store:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.photo-hero-wordmark-light{display:none}[data-theme=light] .photo-hero-copy:has(.photo-hero-wordmark-light) .photo-hero-wordmark-dark{display:none}[data-theme=light] .photo-hero-wordmark-light{display:block}
/* The dialog is the focus plane; only the device grows. The close affordance belongs to it. */
.phone-viewer{position:fixed;inset:0;margin:0;padding:0;width:100vw;height:100svh;max-width:none;max-height:none;border:0;background:transparent;color:var(--fg);overflow:hidden}
.phone-viewer::backdrop{background:transparent}.phone-viewer-backdrop{position:absolute;inset:0;background:#07101bed;backdrop-filter:blur(12px)}
.phone-viewer-content{position:relative;display:flex;align-items:center;justify-content:center;width:fit-content;height:100%;margin:auto;padding:48px 0 36px}
.phone-viewer-device{width:min(78vw,430px,calc((100svh - 100px)*var(--screen-aspect,.4615)))}.phone-viewer .phone-device{cursor:default;box-shadow:0 30px 75px #0007}
.phone-viewer-close{position:absolute;right:-54px;top:28px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #b8d9ee55;border-radius:50%;background:#172838;color:#d6ecff;cursor:pointer;z-index:2}
.phone-viewer-close svg{width:18px;height:18px;color:inherit}.phone-viewer-close:hover{background:#2b4053}.phone-viewer-close:focus-visible{outline:2px solid #c2e1ff;outline-offset:4px}

@media(max-width:800px){.photographic-hero{padding:30px 24px;gap:28px}.photographic-hero h2{font-size:36px}.photo-hero-detail{display:block}.hero-widget{max-width:150px}.photo-hero-detail:has(.hero-widget)>div{display:none}.photographic-gallery{column-gap:14px;grid-template-columns:minmax(0,1fr) minmax(80px,110px)}}
@media(max-width:560px){.photographic-hero{grid-template-columns:1fr;min-height:0;padding:32px 24px 40px;gap:34px}.photographic-hero h2{font-size:38px}.photographic-hero .lead{font-size:15px}.photo-hero-detail{margin-top:18px}.photo-hero-visual{max-width:280px;width:88%}.photo-hero-links{gap:6px 20px;margin-bottom:14px}.photographic-gallery{grid-template-columns:1fr;max-width:280px;gap:0}.photo-gallery-controls{flex-direction:row;justify-content:center;flex-wrap:wrap;gap:8px 20px;margin-top:20px}.photo-screen-choice{flex:0 1 auto;max-width:130px}.photo-choice-mark{flex-basis:18px;height:2px!important}.photo-gallery-caption{margin-top:10px}.phone-viewer-close{right:-22px;top:12px}.phone-device{border-radius:30px}.phone-device-glass{border-radius:25px}.phone-device .phone-screen-content{border-radius:23px}}
@media(prefers-reduced-motion:reduce){.photo-screen-choice,.photo-choice-mark{transition:none}.phone-device[data-phone-pose=angled]{transform:none}.phone-viewer-backdrop{backdrop-filter:none}}
/* Fit one complete device per measured desktop page, including its caption and scene gutters. */
@media(min-width:1100px){
 .project-chapter[data-paged=true] .project-layout:has(.phone-device){padding:28px 36px}

 .project-chapter[data-paged=true] .spollow-plans>section{padding:16px 20px}
 .project-chapter[data-paged=true] .spollow-plans ul{font-size:13px;line-height:1.6}
}
.photo-hero-detail p:empty{display:none}
.photo-hero-visual:has(.photo-gallery-controls){max-width:470px!important}
.phone-preview-empty{padding:32px 20px;text-align:center;color:var(--muted);font-size:14px;border:1px dashed var(--line);border-radius:20px}
@media(max-width:560px){.photographic-hero{padding-top:24px}.photo-hero-detail{margin-top:10px}.photo-hero-detail:not(:has(.hero-widget)){margin-bottom:-12px}}

/* Garmin: locked photographic hardware, calibrated physical display; no phone bezel. */
.phone-device.watch-device{aspect-ratio:2/3;padding:0;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 18px 24px #0004)}
.phone-device.watch-device::before{content:none}
.watch-hardware,.watch-hardware img{display:block;width:100%;height:auto;aspect-ratio:2/3}
.watch-display{position:absolute;left:var(--watch-left);top:var(--watch-top);width:var(--watch-width);aspect-ratio:1;overflow:hidden;border-radius:50%}
.photo-gallery-caption.selection-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.phone-device.watch-device .phone-screen-content{width:100%;height:100%;aspect-ratio:1;object-fit:contain;border-radius:50%;background:none}
.phone-viewer .phone-device.watch-device{box-shadow:none}
.project-detail-image{margin:0;min-width:0}.project-detail-image button{display:block;width:100%;padding:0;border:0;background:none;color:var(--fg);cursor:zoom-in;text-align:left}.project-detail-image picture,.project-detail-image img{display:block;width:100%;height:auto;border-radius:10px}.project-detail-image button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.project-detail-image .image-caption{display:block;padding-top:10px}
.photographic-hero:has(.watch-device) .photo-hero-copy>strong{font-size:24px;color:var(--accent)}
.project-chapter[data-product=olli] .photo-hero-detail p{max-width:46ch}
@media(min-width:1100px){

 .project-chapter[data-paged=true] .photo-hero-visual:has(.watch-device){max-width:500px}

}
@media(max-width:560px){.photo-hero-visual:has(.watch-device){width:100%;max-width:300px}.photographic-gallery:has(.watch-device){max-width:300px}.watch-device{max-width:250px;margin-inline:auto}
 .project-chapter[data-product=olli] .photographic-hero{display:flex;flex-direction:column;align-items:stretch;gap:20px}
 .project-chapter[data-product=olli] .photo-hero-copy{display:contents}
 .project-chapter[data-product=olli] .photo-hero-copy>strong{order:0}
 .project-chapter[data-product=olli] .photo-hero-copy>h2{order:1;margin:0}
 .project-chapter[data-product=olli] .photo-hero-copy>.lead{order:2;margin:0}
 .project-chapter[data-product=olli] .photo-hero-visual{order:3;align-self:center}
 .project-chapter[data-product=olli] .photo-hero-links{order:4;margin:0}
 .project-chapter[data-product=olli] .photo-hero-detail{order:5;margin:0}
}

/* Stable device size and vertical anchor; only real controls reserve horizontal space. */
.project-chapter{--device-width:220px;--device-height:480px;--device-choice-width:108px;--device-choice-gap:12px}
.project-chapter:has(.watch-device){--device-width:280px;--device-height:420px}
.project-chapter .photographic-gallery,.project-chapter .photographic-gallery:not(:has(.photo-gallery-controls)){position:relative;display:grid;grid-template-columns:var(--device-width) var(--device-choice-width);grid-template-rows:var(--device-height) auto;align-items:center;gap:0 var(--device-choice-gap);width:max-content;max-width:100%;margin:0 auto;padding-bottom:0}
.project-chapter .photographic-gallery:not(:has(.photo-gallery-controls)){grid-template-columns:var(--device-width)}
.project-chapter .photo-gallery-stage{grid-column:1;grid-row:1;width:var(--device-width);max-width:none;align-self:center}
.project-chapter .photo-gallery-controls{grid-column:2;grid-row:1;max-height:var(--device-height);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.project-chapter .photo-gallery-support{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:8px;padding-top:12px;min-width:0}
.project-chapter .photo-gallery-support:has(.selection-only:only-child){position:absolute;padding:0;width:1px;height:1px}
.project-chapter .photo-gallery-support .photo-gallery-caption:not(.selection-only){position:static;width:auto;margin:0;overflow-wrap:anywhere}
.project-chapter .photo-gallery-support .photo-evidence{position:static;width:auto;margin:0!important;overflow-wrap:anywhere}
.project-chapter .photo-gallery-controls .photo-evidence{text-align:left;font-size:10px!important;margin-top:10px!important}
.project-chapter .photo-hero-visual{width:100%;max-width:none!important}
.project-chapter .photo-gallery-stage .phone-device{transform:none}
.product-symbols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;margin:28px 0 0}
.product-symbols>div{min-width:0}
.product-symbols dt{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:650;color:var(--fg)}
.product-symbols img{display:block;object-fit:contain;flex:none;filter:brightness(0) invert(1)}
.product-symbols dd{margin:8px 0 0 52px;color:var(--muted);font-size:14px;line-height:1.6}
[data-theme=light] .product-symbols img{filter:brightness(0)}
.device-scene .product-symbols{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.device-scene .product-symbols dt{font-size:14px;gap:8px}
.device-scene .product-symbols img{width:28px;height:28px}
.device-scene .product-symbols dd{margin:4px 0 0 36px;font-size:12px}
.device-compatibility{width:100%;max-width:520px;margin-top:20px}
.device-compatibility details{border:0;max-width:100%}
.device-compatibility summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:var(--switch);color:var(--fg);font-size:14px;line-height:1.5;cursor:pointer;list-style:none}
.device-compatibility summary::-webkit-details-marker{display:none}
.device-compatibility summary::after{content:'';width:8px;height:8px;flex:none;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin:0 3px 4px}
.device-compatibility details[open] summary::after{transform:rotate(225deg);margin-bottom:0}
.device-model-panel{padding:12px 0 0}
.device-model-panel label{display:grid;gap:6px;font-size:12px;color:var(--muted)}
.device-model-panel input{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font:inherit;font-size:14px;caret-color:var(--accent)}
.device-model-panel input::placeholder{color:var(--muted);opacity:1}
.device-model-list{max-height:144px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--accent) transparent;margin-top:8px}
.device-model-list button{display:block;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:8px;text-align:left;background:transparent;color:var(--fg);font:inherit;font-size:14px;line-height:1.5;cursor:pointer;overflow-wrap:anywhere}
.device-model-list button[hidden]{display:none}
.device-model-list button:hover,.device-model-list button:focus-visible{background:var(--switch);color:var(--accent)}
.device-compatibility :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.device-compatibility ::selection{background:var(--accent);color:var(--bg)}
.device-compatibility [role=status]{margin:16px 0 0;font-size:15px;line-height:1.65;color:var(--fg)}
.device-compatibility details[open]~[role=status]{display:none}
.device-model-panel [data-model-empty]{font-size:14px;margin:12px 0 0}
.spollow-test-state{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.spollow-test-state .marketing-store{margin:0;max-width:100%}
.spollow-test-state p{margin:0}
.project-closing{display:flex;flex-direction:column;justify-content:center;gap:24px}
.project-closing .product-actions{margin:0}.project-closing .case-footer{margin:0;padding-top:24px;justify-content:flex-start}
.project-chapter .spollow-features .feature-number{display:none}
@media(min-width:1100px) and (min-height:601px){
 .project-chapter[data-paged=true] .project-page-viewport{--device-height:min(440px,calc(var(--project-page-height) - 136px));--device-width:calc(var(--device-height)*.4615)}
 .project-chapter[data-paged=true]:has(.watch-device) .project-page-viewport{--device-width:calc(var(--device-height)*.6666667)}
 .project-chapter[data-paged=true] .device-scene,.project-chapter[data-paged=true] .project-layout.device-scene{display:grid;grid-template-columns:minmax(0,441px) minmax(0,1fr);gap:24px;align-items:start;padding:28px 92px 28px 84px;min-height:var(--project-page-height);height:auto}
 .project-chapter[data-paged=true]:has(.watch-device) .device-scene{padding-right:60px}
 .project-chapter[data-paged=true] .device-scene:has(.photo-gallery-controls){grid-template-columns:minmax(0,1fr) max-content;column-gap:40px;padding-left:60px;padding-right:36px}
 .project-chapter[data-paged=true] .device-scene:has(.product-symbols){padding-bottom:16px}
 .project-chapter[data-paged=true] .device-scene>.photo-hero-copy{align-self:start;padding-top:68px}
 .project-chapter[data-paged=true] .device-scene>.project-page-copy{align-self:start;padding-top:112px}
 .project-chapter[data-paged=true] .device-scene .project-page-copy>p:not(.spollow-note){font-size:16px;line-height:1.7}
 .project-chapter[data-paged=true] .device-scene .photo-hero-copy,.project-chapter[data-paged=true] .device-scene .project-page-copy{min-width:0}
 .project-chapter[data-paged=true] .device-scene>.project-page-media,.project-chapter[data-paged=true] .device-scene>.photo-hero-visual{align-self:start;margin-top:max(0px,calc((var(--project-page-height) - 56px - var(--device-height))/2 - 16px))}
 .project-chapter[data-paged=true] .device-scene>.project-page-media{order:0}
 .project-chapter[data-paged=true] .photo-gallery-stage,.project-chapter[data-paged=true] .photographic-gallery:not(:has(.photo-gallery-controls)){max-width:none}
 .project-chapter[data-paged=true] .photographic-gallery{padding-bottom:0;margin-left:auto;margin-right:0}
 .project-chapter[data-paged=true] .photo-hero-detail{margin-top:14px}
 .project-chapter[data-paged=true] .photo-hero-detail p{font-size:13px;line-height:1.6;margin-bottom:12px}
 .project-chapter[data-paged=true] .spollow-section:has(.product-symbols):not(.device-scene){display:flex;flex-direction:column;justify-content:center}
 .project-chapter[data-paged=true] .spollow-section:has(.device-compatibility){display:flex;flex-direction:column;justify-content:center}
}
@media(max-width:1099px),(max-height:600px){
 .project-chapter{--device-width:200px;--device-height:444px;--device-choice-width:92px}
 .project-chapter:has(.watch-device){--device-width:240px;--device-height:360px}
 .project-chapter .photographic-hero,.project-chapter .device-scene{grid-template-columns:1fr}
 .project-chapter .photo-hero-visual:has(.watch-device){max-width:none;width:100%}
 .product-symbols{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}
}
@media(max-width:560px){
 .project-chapter .photographic-gallery,.project-chapter .photographic-gallery:not(:has(.photo-gallery-controls)){grid-template-columns:var(--device-width);grid-template-rows:var(--device-height) auto;width:var(--device-width);max-width:none;padding-bottom:0}
 .project-chapter .photographic-gallery:has(.photo-gallery-controls){padding-bottom:0}
 .project-chapter .photo-gallery-stage .watch-device{width:100%;max-width:none}
 .project-chapter .photo-gallery-controls{grid-column:1;grid-row:2;max-height:none;overflow:visible;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:16px}
 .project-chapter .photo-screen-choice{min-height:44px;flex:0 1 auto;font-size:12px}
 .project-chapter .photo-gallery-controls .photo-evidence{flex-basis:100%;text-align:center}
 .project-chapter[data-product=olli] .photo-hero-copy>.marketing-store{order:5}
 .project-chapter[data-product=olli] .photo-hero-detail{order:6}
 .product-symbols dt{font-size:14px;gap:8px}.product-symbols dd{margin-left:0;font-size:13px}.product-symbols img{width:32px;height:32px}
}
/* Compact product stage: shared by the visitor window and the real editor iframe. */
.project-chapter{--product-copy-width:410px;--product-stage-gap:64px;--product-gutter:48px}
.window-bar:has(.project-chapter-nav){position:relative;z-index:12;gap:12px;isolation:isolate}
.window-bar:has(.project-chapter-nav) .window-title{flex:0 1 auto;min-width:0}
.window-bar:has(.project-chapter-nav) .window-actions{order:2}
.project-chapter-nav.project-rail{position:relative;inset:auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:4px;width:auto;min-height:44px;padding:0;margin:0 0 0 auto;border:0;background:none;backdrop-filter:none;z-index:12;cursor:auto}
.project-chapter-menu{position:relative;min-width:0;flex:1}
.project-chapter-nav .project-rail-count{display:flex;align-items:center;gap:10px;width:auto;min-height:44px;margin:0;padding:8px 12px;border-radius:8px;background:var(--switch);list-style:none;cursor:pointer;text-align:left}
.project-rail-count::-webkit-details-marker,.photo-gallery-choice>summary::-webkit-details-marker{display:none}
.project-chapter-nav .project-rail-count span{display:block;color:var(--fg);font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:240px}
.project-chapter-nav .project-rail-count strong{font-size:11px;line-height:1.5;color:var(--muted);letter-spacing:0;font-weight:500;flex:none}
.project-chapter-nav .disclosure,.photo-gallery-choice .disclosure{width:12px;height:12px;flex:none;color:var(--accent)}
.project-chapter-nav .project-rail-ticks{position:absolute;right:0;top:calc(100% + 8px);display:flex;align-items:stretch;flex-direction:column;width:300px;max-width:calc(100vw - 32px);max-height:min(340px,60vh);overflow:auto;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 20px 45px var(--shade);scrollbar-color:var(--accent) var(--panel);scrollbar-width:thin}
.project-chapter-nav .project-tick{display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:12px;width:100%;height:auto;min-height:44px;padding:10px 12px;border-radius:6px;line-height:1.5;font:inherit;font-size:13px;color:var(--fg)}
.project-chapter-nav .project-tick::after{content:none!important}
.project-chapter-nav .project-tick span{width:auto;height:auto;opacity:1;background:none;box-shadow:none;transition:none}
.project-chapter-nav .project-tick[aria-current=page],.project-chapter-nav .project-tick:hover{color:var(--accent);background:var(--switch)}
.project-chapter-nav .project-rail-step{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:7px}
.project-chapter-nav .project-rail-step svg{width:16px;height:16px}
.project-chapter-nav .project-rail-step[data-project-step="1"] svg{transform:rotate(180deg)}
.project-chapter-nav .project-rail-step:disabled{opacity:.4}
.project-view-help{position:relative;font-size:12px;line-height:1.6}
.project-view-help>summary{display:flex;align-items:center;min-height:44px;padding:8px 10px;cursor:pointer;list-style:none;color:var(--muted)}
.project-view-help>summary::-webkit-details-marker{display:none}
.project-view-help-content{position:absolute;top:calc(100% + 8px);right:0;width:300px;max-width:calc(100vw - 32px);max-height:60vh;overflow:auto;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 20px 45px var(--shade);color:var(--fg);font-size:14px;line-height:1.65}
.project-view-help-content p{margin:0 0 12px}.project-view-help-content p:last-child{margin-bottom:0}.project-view-help-content a{color:var(--accent);text-underline-offset:4px}
.project-chapter-nav :focus-visible,.photo-gallery-choice :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.project-chapter .project-page-track{padding-right:0}
.project-chapter[data-paged=true] .project-page-viewport{--device-height:min(440px,calc(var(--project-page-height) - 136px));--device-width:calc(var(--device-height)*.4615)}
.project-chapter[data-paged=true]:has(.watch-device) .project-page-viewport{--device-width:calc(var(--device-height)*.6666667)}
.project-chapter[data-paged=true] .device-scene,.project-chapter[data-paged=true] .project-layout.device-scene,.project-chapter[data-paged=true]:has(.watch-device) .device-scene,.project-chapter[data-paged=true] .device-scene:has(.photo-gallery-controls){display:grid;grid-template-columns:minmax(0,var(--product-copy-width)) var(--device-width);column-gap:var(--product-stage-gap);justify-content:center;align-items:start;padding:28px var(--product-gutter) 16px;min-height:var(--project-page-height);height:auto}
.project-chapter[data-paged=true] .device-scene>.photo-hero-copy{display:block;padding-top:64px;align-self:start}
.project-chapter[data-paged=true] .device-scene>.project-page-copy{padding-top:104px;align-self:start}
.project-chapter[data-paged=true] .device-scene:has(.product-symbols)>.project-page-copy{padding-top:72px}
.project-chapter[data-paged=true] .device-scene>.project-page-media,.project-chapter[data-paged=true] .device-scene>.photo-hero-visual{margin-top:max(0px,calc((var(--project-page-height) - 56px - var(--device-height))/2 - 16px));width:var(--device-width);order:1}
.project-chapter .device-scene h2,.project-chapter .device-scene h3{white-space:pre-line;letter-spacing:-.03em;text-wrap:balance}
.project-chapter .photo-hero-wordmark{max-width:145px;height:36px;object-fit:contain;object-position:left center}
.project-chapter .photo-hero-copy h2{margin-top:8px}
.project-chapter .photographic-gallery,.project-chapter .photographic-gallery:not(:has(.photo-gallery-controls)){grid-template-columns:var(--device-width);grid-template-rows:var(--device-height) auto auto;gap:0;width:var(--device-width);margin:0;padding:0;align-items:start}
.project-chapter .photo-gallery-choice{position:relative;grid-column:1;grid-row:2;width:100%;margin-top:12px;font-size:12px}
.project-chapter .photo-gallery-choice>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:9px 12px;border-radius:8px;background:var(--switch);color:var(--accent);list-style:none;cursor:pointer;line-height:1.5;overflow-wrap:anywhere}
.project-chapter [data-photo-choice-count]{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;color:var(--muted)}
.project-chapter .photo-gallery-choice .photo-gallery-controls{position:absolute;bottom:calc(100% + 8px);left:0;display:flex;flex-direction:column;align-items:stretch;gap:0;grid-column:auto;grid-row:auto;width:100%;max-height:192px;overflow:auto;margin:0;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 12px 36px var(--shade);z-index:6;scrollbar-color:var(--accent) var(--panel);scrollbar-width:thin}
.project-chapter .photo-gallery-choice .photo-screen-choice{display:block;width:100%;max-width:none;min-height:44px;flex:none;padding:9px;border-radius:5px;line-height:1.5}
.project-chapter .photo-choice-mark{display:none}
.project-chapter .photo-screen-choice[aria-pressed=true]{color:var(--accent);background:var(--switch)}
.project-chapter .photo-gallery-support{grid-column:1;grid-row:3;position:static;display:flex;gap:8px;padding-top:12px;min-width:0;width:auto}
.project-chapter .photo-gallery-support .photo-evidence{font-size:11px;line-height:1.55}
.project-chapter .photo-gallery-caption{font-size:12px;line-height:1.6}
.project-chapter[data-paged=true] .spollow-section:not(.device-scene),.project-chapter[data-paged=true] .project-closing{padding:44px 78px}
.project-chapter .spollow-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;margin:20px 0}
.project-chapter[data-paged=true] .spollow-plans>section,.project-chapter .spollow-plans>section{padding:0;border:0;background:none;box-shadow:none}
.project-chapter .spollow-plans h4{font-size:20px;line-height:1.3;margin:10px 0}
.project-chapter .spollow-plans .plan-kind{font-size:12px;line-height:1.5}
.project-chapter .spollow-plans .plan-model{font-size:14px;line-height:1.5;margin:0}
.project-chapter .spollow-plans ul{margin:16px 0 0;padding-left:18px;list-style:disc}
.project-chapter[data-paged=true] .spollow-plans li,.project-chapter .spollow-plans li{font-size:15px;line-height:1.5;margin:8px 0;padding:0;border:0}
.project-chapter .spollow-section:has(.spollow-plans)>h3{font-size:35px;line-height:1.2;margin:0 0 20px}
.project-chapter[data-paged=false]{height:auto;overflow:visible}
.project-chapter[data-paged=false] .project-page-viewport{height:auto;overflow:visible}
.project-chapter[data-paged=false] .spollow-body{display:contents}
.project-chapter[data-paged=false] .project-scene{min-height:0;scroll-margin-top:120px}
.project-chapter[data-paged=false] .device-scene,.project-chapter[data-paged=false] .project-layout.device-scene{display:flex;flex-direction:column;align-items:stretch;gap:28px;padding:36px 24px 40px}
.project-chapter[data-paged=false] .device-scene>.photo-hero-copy,.project-chapter[data-paged=false] .device-scene>.project-page-copy{display:block;width:100%;padding:0;order:0}
.project-chapter[data-paged=false] .device-scene>.project-page-media,.project-chapter[data-paged=false] .device-scene>.photo-hero-visual{width:var(--device-width);margin:0;align-self:center;order:1}
.project-chapter[data-paged=false] .spollow-plans{grid-template-columns:1fr;gap:28px}
.project-chapter[data-paged=false] .spollow-section:not(.device-scene),.project-chapter[data-paged=false] .project-closing{padding:36px 24px}
.project-chapter .spollow-test-state>a,.project-chapter .product-actions>a,.project-chapter .case-footer>a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:360px){.project-chapter .product-symbols{grid-template-columns:1fr}}
@container(max-width:360px){.project-chapter .product-symbols{grid-template-columns:1fr}}
.project-chapter ::selection{background:var(--accent);color:var(--bg)}
.project-chapter *{scrollbar-color:var(--accent) var(--panel);scrollbar-width:thin}
@media(max-width:700px){.window-bar:has(.project-chapter-nav){flex-wrap:wrap;min-height:112px;height:auto;padding:8px 18px;gap:4px 8px}.window-bar:has(.project-chapter-nav) .window-title{flex:1}.window-bar:has(.project-chapter-nav) .window-actions{order:1}.window-bar:has(.project-chapter-nav) .project-chapter-nav{order:2;width:100%;justify-content:space-between;margin:0}.project-chapter-nav .project-rail-count span{max-width:160px}.project-chapter-nav .project-rail-ticks{left:50%;right:auto;transform:translateX(-50%)}.project-chapter{--device-width:220px;--device-height:480px}.project-chapter:has(.watch-device){--device-width:260px;--device-height:390px}.project-chapter .photo-hero-copy h2{font-size:37px}.project-chapter .project-page-copy h3{font-size:34px}}
.project-chapter .product-original-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;border-radius:12px;background:transparent;color:var(--fg);cursor:zoom-in}
.project-chapter .product-original-preview img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px}
.project-chapter .product-original-empty{display:flex;flex-direction:column;justify-content:center;gap:16px;min-height:300px;padding:24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:15px;line-height:1.7}
.project-chapter .product-original-preview:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.project-chapter{container-type:inline-size;overflow-wrap:anywhere}
.window:has(.project-chapter){container-type:inline-size}
@container (max-width:700px){.window-bar:has(.project-chapter-nav){flex-wrap:wrap;min-height:112px;height:auto;padding:8px 18px;gap:4px 8px}.window-bar:has(.project-chapter-nav) .window-title{flex:1}.window-bar:has(.project-chapter-nav) .window-actions{order:1}.window-bar:has(.project-chapter-nav) .project-chapter-nav{order:2;width:100%;justify-content:space-between;margin:0}.project-chapter-nav .project-rail-count span{max-width:140px}.project-chapter-nav .project-rail-ticks{left:50%;right:auto;transform:translateX(-50%)}.window-scroll:has(>.project-chapter){height:calc(100% - 112px)}.project-chapter{--device-width:220px;--device-height:480px}.project-chapter:has(.watch-device){--device-width:260px;--device-height:390px}.project-chapter .photo-hero-copy h2{font-size:37px}.project-chapter .project-page-copy h3{font-size:34px}}
.project-chapter:has([data-media-adapter=web-original]){--device-width:min(360px,calc(100cqw - 48px));--device-height:260px}
.project-chapter[data-paged=true]:has([data-media-adapter=web-original]) .project-page-viewport{--device-width:360px;--device-height:260px}
.project-chapter[data-paged=true]:has([data-media-adapter=web-original]) .device-scene>.project-page-media,.project-chapter[data-paged=true]:has([data-media-adapter=web-original]) .device-scene>.photo-hero-visual{margin-top:104px}
.phone-viewer-caption{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:min(88vw,480px);text-align:center;color:#d6ecff;font-size:13px;line-height:1.5;margin:0}
/* Garmin shop inherits the desktop's material, type and theme roles. */
.shop-entry-pair:has(.shop-opening){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:8px 12px;margin-top:12px}.shop-entry-pair .shop-opening{display:contents}.shop-entry-pair .shop-primary{grid-column:1;grid-row:1;text-align:center}.shop-entry-pair .marketing-store{grid-column:2;grid-row:1;align-self:stretch}.shop-entry-pair .shop-test-note,.shop-entry-pair .shop-opening p{grid-column:1/-1;margin:0}.shop-entry-pair .shop-test-note{grid-row:2}.shop-entry-pair .shop-opening p{grid-row:3}
.shop-entry-pair .marketing-store{margin:0}.shop-opening{max-width:35ch}.shop-opening p{font-size:12px;line-height:1.5;margin:7px 0}.shop-test-note{display:block;font-size:13px;line-height:1.5;color:var(--accent);margin:10px 0;font-weight:600}
.shop-primary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border:0;border-radius:9px;background:var(--accent);color:var(--bg);font:600 14px/1.4 Manrope,Arial,sans-serif;text-decoration:none;cursor:pointer}.shop-primary:hover{filter:brightness(1.08)}.shop-primary:disabled{opacity:.55;cursor:wait}
.garmin-shop{padding:28px 36px 40px;max-width:900px;margin:auto;line-height:1.65}.garmin-shop h2{font-size:clamp(28px,3vw,38px);font-weight:500;letter-spacing:-.025em;line-height:1.12;margin:18px 0}.garmin-shop h3{font-size:19px;font-weight:600;margin:0 0 12px}.garmin-shop p{max-width:70ch;font-size:14px;margin:10px 0}.garmin-shop a{color:var(--accent);text-underline-offset:4px}.garmin-shop button:not(.shop-primary){min-height:44px;padding:10px 14px;color:var(--fg);background:var(--switch);border:1px solid var(--line);border-radius:9px;font:inherit;cursor:pointer}.garmin-shop button:disabled{opacity:.55;cursor:wait}.garmin-shop :focus-visible,.shop-primary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.garmin-shop ::selection{background:var(--accent);color:var(--bg)}
.shop-offer{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:30px;align-items:center}.shop-offer .shop-price{font-size:27px;line-height:1.3;margin-top:22px}.shop-qualification{color:var(--muted)}.shop-watch .watch-device{width:150px;max-width:100%;pointer-events:none}.shop-payment,.shop-result{margin-top:24px;padding:24px 0;border-top:1px solid var(--line)}.shop-payment p{margin-bottom:18px}.shop-payment button{margin:0 8px 8px 0}.shop-result[hidden],.shop-offer[hidden],.shop-payment [data-shop-checkout-help][hidden],.garmin-shop[data-shop-return=true] .shop-offer{display:none}.shop-license{display:block;font:500 clamp(13px,2.2vw,22px)/1.6 Manrope,Arial,sans-serif;letter-spacing:0;white-space:nowrap;user-select:all;margin:18px 0}.shop-actions{display:flex;flex-wrap:wrap;gap:10px}.shop-code-entry,.shop-help{padding:18px 0;border-top:1px solid var(--line)}.shop-code-entry summary,.shop-help summary{cursor:pointer;font-weight:500}.garmin-shop form{margin-top:18px}.garmin-shop label{display:block;font-size:14px}.garmin-shop input{display:block;width:100%;max-width:440px;box-sizing:border-box;background:var(--switch);border:1px solid var(--line);border-radius:8px;color:var(--fg);padding:12px 14px;margin-top:8px;font:inherit;caret-color:var(--accent)}.garmin-shop input[aria-invalid=true]{outline:2px solid var(--accent)}.shop-message:empty{display:none}.shop-message[role=alert]{padding:12px 0;font-weight:600}.shop-device{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.shop-footer{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:24px;font-size:13px}.shop-devices{margin:24px 0}
@media(max-width:600px){.garmin-shop{padding:24px}.shop-offer{grid-template-columns:minmax(0,1fr);gap:8px}.shop-watch{grid-row:2;justify-self:center}.shop-watch .watch-device{width:130px}.shop-license{font-size:13px}.shop-payment .shop-primary{width:100%}.shop-entry-pair{flex-direction:column}.shop-device{align-items:flex-start}.garmin-shop h2{font-size:32px}.shop-opening{max-width:none}}
@media(max-width:560px){.project-chapter[data-product=olli] .shop-entry-pair{order:5}.shop-entry-pair:has(.shop-opening){display:flex;flex-direction:column;align-items:stretch}.shop-entry-pair .shop-primary{order:0}.shop-entry-pair .shop-test-note{order:1}.shop-entry-pair .shop-opening p{order:2}.shop-entry-pair .marketing-store{order:3;margin-top:8px}.shop-entry-pair .shop-primary{width:100%;box-sizing:border-box}}

/* Touch galleries: all views remain reachable without a nested scroll menu. */
.project-chapter .photo-gallery-stepper{display:none;grid-column:1;grid-row:2;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;width:100%;margin-top:12px;min-width:0}
.project-chapter .photo-gallery-stepper button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--switch);color:var(--accent);cursor:pointer;touch-action:manipulation}
.project-chapter .photo-gallery-stepper button[data-photo-step="1"] svg{transform:rotate(180deg)}
.project-chapter .photo-gallery-stepper button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.project-chapter .photo-gallery-stepper button:active{background:var(--panel)}
.project-chapter .photo-step-label{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:center;color:var(--fg);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.project-chapter [data-photo-step-count]{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:760px),(any-pointer:coarse){
 .project-chapter .photo-gallery-choice{display:none}
 .project-chapter .photo-gallery-stepper{display:grid}
}


/* Owner-approved Olli story: one consistent left/right gallery on desktop and mobile. */
.project-chapter[data-product=olli] .photo-gallery-choice{display:none}
.project-chapter[data-product=olli] .photo-gallery-stepper{display:grid}

/* Owner restoration: the desktop keeps its original right-hand snap rail and
   device/selection composition. Narrow reading views keep their touch controls. */
.project-tick-mark{display:none}
.project-chapter[data-paged=true]{position:relative}
.project-chapter[data-paged=true] .project-page-track{padding-right:56px}
.project-chapter[data-paged=true] .project-page-viewport{overflow:hidden;scrollbar-width:none}
.project-chapter[data-paged=true] .project-scene{height:var(--project-page-height);min-height:var(--project-page-height);max-height:var(--project-page-height);overflow:clip;}
.project-chapter[data-paged=true] .project-chapter-nav.project-rail{position:absolute;inset:0 0 0 auto;width:56px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;margin:0;padding:0 0 40px;background:linear-gradient(90deg,transparent,var(--panel) 19%);z-index:10}
.project-chapter[data-paged=true] .project-chapter-menu{display:flex;flex-direction:column;align-items:center;flex:0 1 auto;min-height:0;width:56px}
.project-chapter[data-paged=true] .project-rail-count{display:flex;justify-content:center;width:56px;min-height:32px;padding:0;background:none;cursor:default}
.project-chapter[data-paged=true] .project-rail-count strong{font-size:10px;font-weight:650;color:var(--fg);letter-spacing:.025em}
.project-chapter[data-paged=true] .project-rail-count span,.project-chapter[data-paged=true] .project-rail-count .disclosure{display:none}
.project-chapter[data-paged=true] .project-rail-step[data-project-step="-1"] svg{transform:rotate(90deg)}
.project-chapter[data-paged=true] .project-rail-step[data-project-step="1"] svg{transform:rotate(-90deg)}
.project-chapter[data-paged=true] .project-rail-ticks{position:static;display:flex;flex-direction:column;align-items:center;width:56px;max-width:none;max-height:calc(var(--project-page-height) - 164px);padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:none;overflow-x:visible;overflow-y:auto;scrollbar-width:none}
.project-chapter[data-paged=true] .project-tick{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;border-radius:7px;background:none;color:var(--muted)}
.project-chapter[data-paged=true] .project-tick .project-tick-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.project-chapter[data-paged=true] .project-tick .project-tick-mark{display:block;width:14px;height:2px;background:currentColor;opacity:.53;border-radius:3px;transition:width .22s,opacity .22s}
.project-chapter[data-paged=true] .project-tick:hover .project-tick-mark,.project-chapter[data-paged=true] .project-tick:focus-visible .project-tick-mark{width:25px;opacity:1}
.project-chapter[data-paged=true] .project-tick[aria-current=page]{color:var(--accent);background:none}
.project-chapter[data-paged=true] .project-tick[aria-current=page] .project-tick-mark{width:27px;height:3px;opacity:1;box-shadow:0 0 10px color-mix(in srgb,var(--accent) 45%,transparent)}
.project-chapter[data-paged=true] .project-chapter-nav .project-tick::after{content:none!important}
.project-chapter[data-paged=true] .project-view-help{position:absolute;right:0;bottom:0;width:56px;text-align:center}
.project-chapter[data-paged=true] .project-view-help>summary{justify-content:center;padding:8px 0}
.project-chapter[data-paged=true] .project-view-help-content{top:auto;bottom:44px;right:56px;text-align:left}
.project-chapter[data-paged=true] .device-scene,.project-chapter[data-paged=true] .project-layout.device-scene,.project-chapter[data-paged=true]:has(.watch-device) .device-scene,.project-chapter[data-paged=true] .device-scene:has(.photo-gallery-controls){display:grid;grid-template-columns:minmax(0,441px) max-content;justify-content:space-between;align-items:start;gap:40px;padding:28px 28px 16px 64px}
.project-chapter[data-paged=true] .device-scene>.photo-hero-copy{display:block;padding-top:clamp(12px,calc(var(--project-page-height)*.5 - 216px),64px);min-width:0}
.project-chapter[data-paged=true] .device-scene>.project-page-copy{padding-top:clamp(16px,calc(var(--project-page-height)*.23 - 44px),104px);min-width:0}
.project-chapter[data-paged=true] .device-scene>.project-page-media,.project-chapter[data-paged=true] .device-scene>.photo-hero-visual{width:max-content;max-width:none;margin-top:clamp(0px,calc(var(--project-page-height) - 560px),max(0px,calc((var(--project-page-height) - 56px - var(--device-height))/2 - 16px)));order:1}
.project-chapter[data-paged=true] .device-scene h2{font-size:clamp(34px,calc(var(--project-page-height)*.075),48px)}
.project-chapter[data-paged=true] .device-scene h3{font-size:clamp(28px,calc(var(--project-page-height)*.06),40px);line-height:1.18}
.project-chapter[data-paged=true] .device-scene:has(.product-symbols)>.project-page-copy{padding-top:clamp(0px,calc(var(--project-page-height) - 560px),72px)}
.project-chapter[data-paged=true] .device-scene .product-symbols{gap:12px;margin-top:16px}
.project-chapter[data-paged=true] .photo-hero-copy .lead{font-size:15px;line-height:1.65}
.project-chapter[data-paged=true] .photographic-gallery{display:grid;grid-template-columns:var(--device-width) 108px;grid-template-rows:var(--device-height) auto;width:max-content;max-width:none;gap:0 12px}
.project-chapter[data-paged=true] .photographic-gallery:not(:has(.photo-gallery-controls)){grid-template-columns:var(--device-width)}
.project-chapter[data-paged=true] .photo-gallery-stage{grid-column:1;grid-row:1}
.project-chapter[data-paged=true] .photo-gallery-choice{display:contents}
.project-chapter[data-paged=true] .photo-gallery-choice::details-content{display:contents}
.project-chapter[data-paged=true] .photo-gallery-choice>summary,.project-chapter[data-paged=true] .photo-gallery-stepper{display:none}
.project-chapter[data-paged=true] .photo-gallery-choice .photo-gallery-controls{position:static;grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:safe center;align-self:center;width:108px;max-height:var(--device-height);gap:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.project-chapter[data-paged=true] .photo-gallery-choice .photo-screen-choice{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 0;border-radius:0;background:none;text-align:left;color:var(--muted);font-size:11px;line-height:1.5}
.project-chapter[data-paged=true] .photo-gallery-choice .photo-screen-choice[aria-pressed=true]{color:var(--accent)}
.project-chapter[data-paged=true] .photo-choice-mark{display:block;flex:none;width:2px;min-height:24px;background:currentColor;opacity:.35}
.project-chapter[data-paged=true] .photo-screen-choice[aria-pressed=true] .photo-choice-mark{opacity:1}
.project-chapter[data-paged=true] .photo-gallery-support{grid-column:1;grid-row:2;width:var(--device-width)}

/* Desktop is a presentation, without a second page scrollbar. */
.window-scroll:has(>.project-chapter[data-paged=true]){overflow:hidden}
.project-chapter[data-paged=true] .project-rail-ticks{overflow:hidden}
.project-chapter[data-paged=true] .project-tick{height:clamp(24px,calc((var(--project-page-height) - 164px)/var(--project-chapter-count)),44px);min-height:24px}
.project-chapter[data-paged=true] .photo-gallery-controls{scrollbar-width:none}
.project-chapter[data-paged=true] .photo-gallery-controls::-webkit-scrollbar{display:none}
.project-chapter[data-paged=true][data-compact-desktop=true] .project-scene:not(.device-scene){padding:24px 64px}
.project-chapter[data-paged=true][data-compact-desktop=true] .project-scene:not(.device-scene) h3{font-size:30px;line-height:1.18}
.project-chapter[data-paged=true][data-compact-desktop=true] .device-scene:has(.spollow-steps)>.project-page-copy{padding-top:16px}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans{margin:12px 0;gap:16px}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans>section{padding:16px}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans li{padding:5px 0;line-height:1.5}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans .plan-model{margin-bottom:12px}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans h4{font-size:18px}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans li{margin:0;font-size:13px}.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans .plan-model{font-size:12px}
.project-chapter[data-paged=true][data-compact-desktop=true] .project-scene h3{margin-bottom:12px}.project-chapter[data-paged=true][data-compact-desktop=true] .device-scene .product-symbols{gap:8px;margin-top:12px}.project-chapter[data-paged=true][data-compact-desktop=true] .device-scene .product-symbols dd{margin-top:2px}

.project-chapter[data-paged=true][data-compact-desktop=true] .project-scene>.spollow-note{margin-top:12px}.project-chapter[data-paged=true] .device-model-list{scrollbar-width:none}

.project-chapter[data-paged=true][data-compact-desktop=true] .photo-hero-copy>strong{font-size:20px}
.project-chapter[data-paged=true][data-compact-desktop=true] .photo-hero-copy h2{margin-bottom:12px}
.project-chapter[data-paged=true][data-compact-desktop=true] .photo-hero-copy .lead{font-size:14px;line-height:1.5}
.project-chapter[data-paged=true][data-compact-desktop=true] .photo-hero-links{margin:6px 0 8px}
.project-chapter[data-paged=true][data-compact-desktop=true] .shop-entry-pair{margin-top:0}
.project-chapter[data-paged=true][data-compact-desktop=true] .shop-entry-pair .shop-opening p{margin:0;font-size:11px;line-height:1.4}
.project-chapter[data-paged=true][data-compact-desktop=true] .photo-hero-detail{margin-top:10px}
.project-chapter[data-paged=true][data-compact-desktop=true] .project-page-copy>.spollow-note{margin-top:12px}
.project-chapter[data-paged=true][data-compact-desktop=true] .project-page-copy h3{margin-top:0}
.project-chapter[data-paged=true][data-compact-desktop=true] .spollow-plans>section{padding:12px 16px}
.project-chapter[data-paged=true] .photo-gallery-choice .photo-gallery-controls{align-self:start;min-height:var(--device-height);max-height:none;overflow:visible}
.project-chapter[data-paged=true] .spollow-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-chapter[data-paged=true] .spollow-steps li{padding-left:0;position:static}.project-chapter[data-paged=true] .spollow-steps li::before{position:static;font-size:28px;margin-bottom:17px}.project-chapter[data-paged=true] .spollow-steps p{font-size:13px;line-height:1.7;margin:12px 0 0}

/* Windows originals share one fit contract in the visitor and editor preview. */
.project-chapter[data-presentation="windows-desktop"]{--device-width:min(560px,calc(100cqw - 48px));--device-height:560px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-page-viewport{--device-width:100%;--device-height:max(160px,calc(var(--project-page-height) - 136px))}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:32px;padding:24px 36px 24px 48px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.photo-hero-copy,.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.project-page-copy{padding-top:0;align-self:center}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.project-page-media,.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.photo-hero-visual{margin:0;align-self:center;justify-self:center;width:100%;min-width:0;max-width:640px}
.project-chapter[data-presentation="windows-desktop"] .photographic-gallery,.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photographic-gallery{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;width:100%;max-width:100%;margin:0;align-content:center;justify-items:center;row-gap:0}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-stage{width:100%;max-width:100%;height:auto;min-height:0;align-self:center}
.project-chapter[data-presentation="windows-desktop"] .product-original-preview{height:auto;max-width:100%;margin:0 auto}
.project-chapter[data-presentation="windows-desktop"] .product-original-preview img{border-radius:8px;max-width:100%;max-height:var(--device-height);width:auto;height:auto;object-fit:contain}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-support,.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-support{width:100%;max-width:100%;text-align:center;gap:4px;padding-top:12px}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-support .photo-gallery-caption{font-size:12px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice{display:block;grid-column:1;grid-row:3;width:100%;max-width:100%}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice .photo-gallery-controls{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;width:100%;min-height:0;max-height:none;gap:8px 16px;overflow:visible}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice .photo-screen-choice{min-height:44px;font-size:12px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photographic-gallery{position:relative;grid-template-rows:auto}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-support{position:absolute;top:100%;left:0}
@container (max-width:740px){.project-chapter[data-presentation="windows-desktop"]{--device-width:min(560px,calc(100cqw - 48px));--device-height:560px}}

/* Window continuity: approved local study, shared visitor runtime. */
html[data-window-motion=on] .window{animation:none}
html[data-window-motion=on] .motion-leaving{pointer-events:none!important}
html[data-window-motion=on] .desktop-icon .app-tile{transition:transform 160ms cubic-bezier(.2,.8,.2,1),filter 160ms ease-out}
@media(hover:hover) and (pointer:fine){html[data-window-motion=on][data-motion=full] .desktop-icon:not(.dragging):hover .app-tile{transform:translateY(-3px);filter:brightness(1.06)}html[data-window-motion=on][data-motion=full] .desktop-icon:not(.dragging):active .app-tile{transform:translateY(0) scale(.97)}}
html[data-motion=reduced] .desktop-icon .app-tile{transform:none!important;filter:none!important}
/* The task rail compresses, then switches to icons and an anchored overflow flyout. */
.taskbar .running-apps{overflow:visible;gap:6px;min-width:0;padding:5px 0}
.taskbar .running-apps>.task-entry{flex:0 0 var(--task-size,120px);width:var(--task-size,120px);max-width:164px;min-width:0;padding:0;overflow:hidden}
.taskbar .task-entry .running-app{flex:1;min-width:0;padding:9px 8px;gap:7px;justify-content:flex-start}
.taskbar .running-app>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.taskbar .running-app>:is(.app-icon,.ui-symbol,.brand-icon){width:24px;height:24px;flex:none}
.taskbar[data-task-mode=compact] .task-close,.taskbar[data-task-mode=icons] .task-close{display:none}
.taskbar[data-task-mode=icons] .running-app>span{display:none}
.taskbar[data-task-mode=icons] .running-app{justify-content:center;padding:9px}
.taskbar-more{flex:none;width:36px;height:44px;border-radius:9px;display:grid;place-items:center;color:var(--fg)}
.taskbar-more[hidden]{display:none}.taskbar-more svg{width:24px;height:24px;fill:currentColor}
.taskbar-more:hover,.taskbar-more[aria-expanded=true]{background:var(--switch)}
.taskbar-overflow{position:absolute;bottom:calc(100% + 12px);display:grid;grid-template-columns:repeat(5,44px);gap:6px;width:max-content;max-width:calc(100vw - 32px);padding:10px;border-radius:12px;background:var(--panel);box-shadow:0 18px 48px var(--shade);z-index:60}
.taskbar-overflow[hidden]{display:none}.taskbar-overflow .task-entry{width:44px;min-width:0;padding:0}.taskbar-overflow .running-app{justify-content:center;padding:9px}.taskbar-overflow .running-app>span,.taskbar-overflow .task-close{display:none}
.taskbar>:is(.language-control,.motion-control,.theme-control,.clock,.launcher-toggle){flex-shrink:0}
/* The story uses the same named chapter primitive as product pages. */
.story-chapter .story-scene{display:flex;align-items:center;justify-content:center;padding:32px 72px 32px 48px}
.story-panel{width:100%;max-width:840px;margin:auto}
.story-chapter .story-intro h2{font-size:clamp(34px,3.8vw,52px);line-height:1.08;letter-spacing:-.03em;font-weight:500;margin:0 0 18px}
.story-chapter .story-intro .lead{font-size:16px;line-height:1.6;max-width:65ch;margin:0}
.story-chapter .story-text{gap:32px;margin:28px 0 0;grid-template-columns:repeat(2,minmax(0,1fr))}
.story-chapter .story-text h3{font-size:18px;line-height:1.35;margin:0 0 9px}
.story-chapter .story-text p{font-size:14px;line-height:1.7;margin:0;max-width:46ch}
.story-chapter .story-name{padding:0;border:0}.story-wordmark{margin:0 0 28px}.story-wordmark .brand-lettering{width:min(100%,490px);height:auto;max-width:100%}
.story-chapter .name-story{gap:32px;margin:0}.story-chapter .name-story dt{font-size:30px;letter-spacing:-.03em;font-weight:500}.story-chapter .name-story dt span{font-size:17px;line-height:1.5;margin-top:8px}.story-chapter .name-story dd{font-size:14px;line-height:1.6;margin:5px 0 0}
.story-chapter .story-outro{margin:26px 0 12px;font-size:16px;line-height:1.6}.story-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 32px}.story-actions .text-link{min-height:44px;display:inline-flex;align-items:center;gap:10px}
.story-chapter[data-compact-desktop=true] .story-scene{padding:20px 72px 20px 40px}.story-chapter[data-compact-desktop=true] .story-intro h2{font-size:36px;margin-bottom:12px}.story-chapter[data-compact-desktop=true] .story-text{margin-top:18px;gap:26px}.story-chapter[data-compact-desktop=true] .story-wordmark{margin-bottom:16px}.story-chapter[data-compact-desktop=true] .story-wordmark .brand-lettering{width:390px}.story-chapter[data-compact-desktop=true] .story-outro{margin-top:16px}
.story-chapter[data-paged=false] .story-scene{padding:36px 24px}.story-chapter[data-paged=false] .story-text,.story-chapter[data-paged=false] .name-story{grid-template-columns:1fr;gap:24px}.story-chapter[data-paged=false] .story-scene+.story-scene{border-top:1px solid var(--line)}
.story-chapter[data-paged=false] .story-wordmark{margin:0 0 28px}.story-chapter[data-paged=false] .project-page-viewport{scroll-snap-type:y proximity}.story-chapter[data-paged=false] .story-scene{scroll-snap-align:start}
.contact-send-bird{display:none}
@media(max-width:1099px),(max-height:600px){.taskbar-more,.taskbar-overflow{display:none!important}.contact-emblem{display:none!important}.contact-send-bird{display:block;width:76px;height:53px;flex:none}.contact-send-bird svg{display:block;width:100%;height:100%}.contact-submit>button{min-height:64px;gap:12px;padding-block:5px}.story-chapter .story-intro h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){html[data-window-motion=on] .desktop-icon .app-tile{transform:none!important;filter:none!important}}
/* Flight uses only the existing bird drawing and registered NB material. */
.carrier-flight-stage{position:fixed;inset:0;z-index:80;overflow:hidden;pointer-events:none;contain:layout paint}
.carrier-air-layer{position:absolute;inset:0;mask-size:100% 100%;mask-position:0 0;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-position:0 0;-webkit-mask-repeat:no-repeat}
.carrier-flight{position:absolute;left:0;top:0;transform-origin:50% 50%;filter:drop-shadow(0 0 5px #9bd3ff35);will-change:transform}
.carrier-flight svg,.carrier-shadow-sprite svg{display:block;width:100%;height:100%;overflow:visible}
.carrier-flight .bird-wing,.carrier-flight .bird-letter,.carrier-shadow-sprite .bird-wing,.carrier-shadow-sprite .bird-letter{animation:none!important;transform-box:view-box;transform-origin:110px 82px;backface-visibility:visible}
.carrier-flight .bird-letter,.carrier-shadow-sprite .bird-letter{transform-origin:99px 109px}
.carrier-ground-shadow{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.carrier-glass-shadow{position:fixed;inset:0;z-index:79;pointer-events:none;overflow:hidden;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.carrier-shadow-sprite{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;will-change:transform}
.carrier-shadow-sprite svg :is(path,rect,circle){fill:#07101b!important;stroke:#07101b!important;stroke-opacity:1!important;fill-opacity:1!important}
html[data-theme=light] .carrier-shadow-sprite svg :is(path,rect,circle){fill:#152a44!important;stroke:#152a44!important}
.taskbar[data-task-mode=compact] .running-app>:is(.app-icon,.ui-symbol,.brand-icon){width:22px;height:22px}
.taskbar[data-task-mode=icons] .running-app>:is(.app-icon,.ui-symbol,.brand-icon){width:20px;height:20px}
.taskbar-overflow{max-height:min(360px,50vh);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
@keyframes taskbar-overflow-in{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.taskbar-overflow:not([hidden]){animation:taskbar-overflow-in 140ms cubic-bezier(.2,.8,.2,1)}
@media(prefers-reduced-motion:reduce){.carrier-flight-stage,.carrier-ground-shadow,.carrier-glass-shadow{display:none}}

/* Story reading stays usable with large type; touch chapters snap without a native rail. */
@media(max-width:1099px),(max-height:600px){
 html:has(#window-story.active){scrollbar-width:none;scroll-snap-type:y proximity;scroll-padding-top:112px}
 html:has(#window-story.active)::-webkit-scrollbar,body:has(#window-story.active)::-webkit-scrollbar{display:none}
 .story-chapter[data-paged=false] .story-scene{min-height:calc(100svh - 216px);scroll-snap-align:start;scroll-snap-stop:always}
 .story-chapter[data-paged=false] .story-scene:last-child{padding-bottom:108px}
}

@media(max-width:1099px),(max-height:600px){.workspace:has(#window-story.active){scrollbar-width:none;scroll-snap-type:y proximity;scroll-padding-top:112px}.workspace:has(#window-story.active)::-webkit-scrollbar{display:none}}

/* Native menus inherit the same readable palette in every window. */
:root {color-scheme:dark} [data-theme=light] {color-scheme:light}
select option,select optgroup {background:var(--panel);color:var(--fg)}
.contact-message-meta {display:flex;justify-content:space-between;gap:16px;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.5}
.history-controls {grid-template-columns:repeat(2,minmax(0,1fr))}
.history-category {font-size:12px;color:var(--muted);margin:0 0 6px}
@media(max-width:520px){.history-controls {grid-template-columns:1fr}}

/* Desktop pull cord. Same compact boundary as the desktop window manager. */
.pull-cord { --cord-core:#536779; --cord-yarn-a:#c2ced7; --cord-yarn-b:#8799a8; --cord-yarn-c:#e0e7ec; --cord-yarn-d:#6a8093; position:fixed; top:0; right:clamp(14px,3.5vw,72px); width:120px; height:240px; z-index:35; pointer-events:none; user-select:none; }
[data-theme=light] .pull-cord { --cord-core:#374e61; --cord-yarn-a:#7d91a2; --cord-yarn-b:#526d82; --cord-yarn-c:#b8c8d5; --cord-yarn-d:#466177; }
.pull-cord-drawing { display:block; width:120px; height:240px; overflow:visible; touch-action:none; shape-rendering:geometricPrecision; }
.pull-cord-line { stroke:var(--cord-core); stroke-width:3.8; }
.pull-cord-fiber { stroke-width:.62; }
.pull-cord-fiber.fiber-0 { stroke:var(--cord-yarn-a); }
.pull-cord-fiber.fiber-1 { stroke:var(--cord-yarn-b); }
.pull-cord-fiber.fiber-2 { stroke:var(--cord-yarn-c); stroke-width:.48; }
.pull-cord-fiber.fiber-3 { stroke:var(--cord-yarn-d); stroke-width:.58; }
.pull-cord-fiber-highlight { stroke:var(--cord-yarn-c); stroke-width:.12; opacity:.58; }
.pull-cord-hit { pointer-events:stroke; cursor:grab; }
.pull-cord-grip { pointer-events:all; cursor:grab; filter:drop-shadow(.6px 1.6px 1px #07111b55); }
.pull-cord-switch,.pull-cord-switch:focus,.pull-cord-switch:focus-visible { outline:none; border:0; box-shadow:none; background:transparent; }
.pull-cord.is-focused .pull-cord-handle { filter:brightness(1.16); }
.pull-cord.is-pulling .pull-cord-grip,.pull-cord.is-pulling .pull-cord-hit { cursor:grabbing; }
.taskbar .theme-control { display:none; }
@media (max-width:1099px), (max-height:600px), (any-pointer:coarse) and (any-hover:none) {
 .pull-cord { display:none; }
 .taskbar .theme-control { display:flex; }
}

/* Taskbar date flyout: shares the desktop's theme, material and elevation. */
#calendar-toggle.clock{display:grid;flex-shrink:0;justify-items:end;align-content:center;min-height:44px;padding:5px 8px;border:0;border-radius:9px;background:transparent;color:var(--fg);cursor:pointer;font:inherit}
#calendar-toggle:hover,#calendar-toggle[aria-expanded=true]{background:var(--switch)}
#calendar-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.calendar-trigger-icon{display:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.taskbar-calendar{position:fixed;z-index:95;width:360px;max-width:calc(100vw - 16px);padding:18px;border-radius:16px;background:var(--panel);color:var(--fg);box-shadow:0 18px 52px var(--shade);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;font-size:13px;line-height:1.5;isolation:isolate}
.taskbar-calendar[hidden]{display:none}
.taskbar-calendar *{box-sizing:border-box}
.taskbar-calendar button{font:inherit;color:inherit;cursor:pointer;border:0;background:transparent;border-radius:8px;min-height:44px;min-width:0;touch-action:manipulation}
.taskbar-calendar button:hover{background:var(--switch)}
.taskbar-calendar button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.taskbar-calendar button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.calendar-heading p{margin:0 0 4px;color:var(--muted);font-size:12px}
.calendar-heading time{font-size:14px;font-weight:600}
.calendar-heading>button{flex:0 0 44px;display:grid;place-items:center}
.calendar-navigation{display:grid;grid-template-columns:auto 1fr 36px 36px;align-items:center;gap:2px;margin-top:8px}
.calendar-navigation h2{font:600 14px/1.4 Manrope,Arial,sans-serif;letter-spacing:0;margin:0 4px;text-align:center;overflow-wrap:anywhere}
.calendar-navigation>button:first-child{padding-inline:8px;font-size:12px;color:var(--accent)}
.calendar-weekdays,.calendar-grid [role=row]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.calendar-weekdays{color:var(--muted);font-size:11px;padding-block:10px 6px}
.calendar-grid [role=gridcell]{min-width:0;padding:2px}
.taskbar-calendar .calendar-day{display:grid;place-content:center;position:relative;width:100%;height:44px;min-height:44px;font-variant-numeric:tabular-nums;border:1px solid transparent;border-radius:9px}
.taskbar-calendar .calendar-day.is-outside{color:var(--muted)}
.taskbar-calendar .calendar-day.has-events{border-color:var(--accent)}
.taskbar-calendar .calendar-day.is-selected{background:var(--switch)}
.taskbar-calendar .calendar-day.is-today{background:var(--accent);color:var(--bg);font-weight:800}
.taskbar-calendar .calendar-day.is-today.has-events{outline:1px solid var(--accent);outline-offset:2px}
.calendar-event-dot{position:absolute;bottom:4px;left:calc(50% - 1.5px);width:3px;height:3px;border-radius:50%;background:currentColor}
.calendar-legend{display:flex;gap:8px;align-items:center;margin:12px 0 0;font-size:11px;color:var(--muted)}
.calendar-legend>span{width:12px;height:12px;border:1px solid var(--accent);border-radius:3px;flex-shrink:0}
.calendar-notes{border-top:1px solid var(--line);padding-top:16px;margin-top:16px;overflow-wrap:anywhere}
.calendar-notes h3{font-size:12px;font-weight:500;color:var(--muted);margin:0 0 12px}
.calendar-note+.calendar-note{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}
.calendar-note .calendar-note-kind{font-size:11px;font-weight:600;color:var(--accent);margin:0 0 4px}
.calendar-note h4{font-size:15px;line-height:1.4;margin:0 0 8px;font-weight:650}
.calendar-note>p:last-child{white-space:pre-wrap;margin:0;line-height:1.65}
.calendar-empty{color:var(--muted);font-size:12px;margin:0}
@media(max-width:1099px),(max-height:600px),(any-pointer:coarse) and (any-hover:none){
 .taskbar #calendar-toggle.clock{display:grid;min-width:44px;justify-items:center;padding:0}
 #calendar-toggle .calendar-trigger-icon{display:block}
 #calendar-toggle #clock-time,#calendar-toggle #clock-date{display:none}
 .taskbar-calendar{padding:14px;width:352px}
 .taskbar-calendar .calendar-day{height:42px;min-height:42px}
}
@media(prefers-reduced-motion:no-preference){
 html[data-motion=full] .taskbar-calendar:not([hidden]){animation:calendar-open .18s cubic-bezier(.23,1,.32,1)}
 @keyframes calendar-open{from{transform:translateY(8px);opacity:.6}to{transform:translateY(0);opacity:1}}
}
@media(max-width:360px){.taskbar .language-control>svg{display:none}.taskbar{gap:6px}}

.contact-security-retry{margin-top:8px;min-height:44px;padding:8px 12px;border:1px solid currentColor;border-radius:8px;background:transparent;color:var(--fg);font:inherit;cursor:pointer}

/* Contact: give writing space the spare window height; one native vertical scroller. */
#window-contact .window-scroll{overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
#window-contact .contact-copy{min-height:100%;align-items:stretch}
#contact-form{grid-template-rows:auto auto minmax(180px,1fr) auto auto auto;align-content:stretch}
#contact-form .contact-message-field{grid-template-rows:auto minmax(150px,1fr) auto;min-height:210px}
#contact-form textarea{height:100%;min-height:150px;resize:vertical}
#contact-form .contact-submit{align-self:end;margin-top:auto}
@media(max-width:760px){#contact-form{grid-template-rows:auto auto minmax(200px,1fr) auto auto auto}#contact-form input,#contact-form select,#contact-form textarea{font-size:16px}#contact-form textarea{min-height:190px}}

/* R09: complete 9:16 SPOLLOW posters; existing phone/other-product styles stay intact. */
.project-chapter[data-product="spollow"] .spollow-gallery .project-detail-image picture,
.project-chapter[data-product="spollow"] .spollow-gallery .project-detail-image img {
  border: 0;
  border-radius: 0;
  background: transparent;
}
.project-chapter[data-product="spollow"] .spollow-gallery .project-detail-image img {
  aspect-ratio: 9 / 16;
  height: auto;
  object-fit: contain;
}

/* Shared optional page layout: original gallery controls, one matching explanation. */
.project-gallery-detail{display:grid;gap:12px;margin:24px 0 0}
.project-gallery-detail h4{margin:0;font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.02em}
.project-gallery-detail p{margin:0}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-layout:has([data-gallery-details]) .photographic-gallery{--device-height:max(150px,calc(var(--project-page-height) - 216px))}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .spollow-testing{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-layout:has([data-gallery-details]) .photo-screen-choice{width:auto;flex:0 1 auto}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-layout:has([data-gallery-details]) .photo-gallery-support{position:static;grid-column:1;grid-row:4}
.project-chapter[data-presentation="windows-desktop"] :is(.photo-hero-copy>.lead,.photo-hero-detail>div>p,.project-page-copy>p,.project-gallery-detail p){font-size:16px;line-height:1.65;color:var(--fg)}
.project-chapter[data-presentation="windows-desktop"] .project-page-copy>.spollow-note{font-size:14px;line-height:1.6;color:var(--muted)}

/* Shared Windows original-image flow: image, controls, caption never overlap. */
.project-chapter[data-presentation="windows-desktop"] .photographic-gallery,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photographic-gallery{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;isolation:isolate}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-stage{grid-column:1;grid-row:1;position:relative;align-self:center;min-width:0;height:var(--device-height);display:flex;align-items:center;justify-content:center}
.project-chapter[data-presentation="windows-desktop"] .product-original-preview{height:100%}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-choice,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice{grid-column:1;grid-row:2;position:relative;z-index:1;width:100%;margin:10px 0 0}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-stepper{grid-column:1;grid-row:2}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-support,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-support,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-layout:has([data-gallery-details]) .photo-gallery-support{grid-column:1;grid-row:3;position:static;inset:auto;padding-top:8px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice .photo-gallery-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px 12px;min-height:0;max-height:none;align-items:stretch}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] [data-view-count="2"] .photo-gallery-controls,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] [data-view-count="4"] .photo-gallery-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice .photo-screen-choice,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-layout:has([data-gallery-details]) .photo-screen-choice{width:100%;min-width:0;min-height:44px;padding:6px 8px;text-align:left;justify-content:flex-start;font-size:13px}
.project-chapter[data-presentation="windows-desktop"][data-paged="false"] .photo-gallery-stage{height:auto;display:block}
.project-chapter[data-presentation="windows-desktop"][data-paged="false"] .product-original-preview{height:auto}
.product-comparison{margin:20px 0 12px}
.product-comparison table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;line-height:1.4}
.product-comparison th,.product-comparison td{border:0;padding:7px 5px;vertical-align:middle}
.product-comparison th:first-child{width:50%;padding-left:0;text-align:left}
.product-comparison thead th{font-weight:600;color:var(--fg);text-align:center;font-size:13px}
.product-comparison tbody th{font-weight:400}
.product-comparison td{text-align:center;font-size:20px;line-height:1}
.product-comparison .comparison-check svg{width:22px;height:22px;vertical-align:middle}
.product-comparison .comparison-check{color:var(--accent);font-weight:700}
.product-comparison th:last-child,.product-comparison td:last-child{background:color-mix(in srgb,var(--accent) 10%,transparent)}
@container(max-width:740px){.product-comparison table{font-size:12px}.product-comparison th:first-child{width:48%}.product-comparison th,.product-comparison td{padding:7px 4px}}

/* Windows presentations: shared upper anchor and intrinsic original-image proportions. */
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene{
 grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;align-content:start;
 gap:36px;padding:clamp(24px,calc(var(--project-page-height)*.055),44px) 40px 24px;
}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photographic-hero{
 grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.photo-hero-copy,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.project-page-copy{
 align-self:start;padding:0;margin:0;max-width:none;
}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.project-page-media,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .device-scene>.photo-hero-visual{
 align-self:start;justify-self:stretch;margin:0;width:100%;max-width:none;
}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy{display:flex!important;flex-direction:column;align-items:stretch}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy h2{order:0;margin:0 0 20px;font-size:clamp(38px,4.4cqw,52px);line-height:1.08}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy>.lead{order:1;margin:0;font-size:17px;line-height:1.55}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy>.photo-hero-links{order:4}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy>.photo-hero-links:empty{display:none}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy>.photo-hero-detail{order:2;display:block;margin:20px 0 0}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy>.shop-entry-pair{order:3;margin:22px 0 0}
.project-chapter[data-presentation="windows-desktop"] .photo-hero-copy:has(.shop-entry-pair:not(:empty)) .photo-hero-detail .status{display:none}
.project-chapter[data-presentation="windows-desktop"] .project-page-copy h3{margin:0 0 22px;font-size:clamp(34px,3.8cqw,44px);line-height:1.12}
.project-chapter[data-presentation="windows-desktop"] .project-page-copy>p{margin:0 0 18px}
.project-chapter[data-presentation="windows-desktop"] .project-gallery-detail{margin:24px 0 0;gap:10px}
.project-chapter[data-presentation="windows-desktop"] .project-page-copy>.spollow-note{margin:20px 0 0}
.project-chapter[data-presentation="windows-desktop"] .photographic-gallery,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photographic-gallery{
 display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;
 width:100%;max-width:100%;align-content:start;align-items:start;justify-items:stretch;
}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-stage{
 display:block;height:auto;width:100%;align-self:start;
}
.project-chapter[data-presentation="windows-desktop"] .product-original-preview{
 display:flex;align-items:flex-start;justify-content:center;width:100%;height:auto;
}
.project-chapter[data-presentation="windows-desktop"] .product-original-preview img{
 display:block;width:auto;height:auto;max-width:100%;max-height:min(400px,calc(var(--project-page-height) - 190px));object-fit:contain;
}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photographic-hero .product-original-preview img{
 max-height:min(530px,calc(var(--project-page-height) - 110px));
}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .project-layout:not(:has([data-gallery-details])) .product-original-preview img{
 max-height:min(360px,calc(var(--project-page-height) - 130px));
}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice{margin:14px 0 0}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .photo-gallery-choice .photo-screen-choice{font-size:14px;min-height:44px;padding:8px 10px}
.project-chapter[data-presentation="windows-desktop"] .photo-gallery-support{padding-top:10px}
.project-chapter[data-presentation="windows-desktop"] .product-comparison{margin:0}
.project-chapter[data-presentation="windows-desktop"] .product-comparison table{font-size:16px;line-height:1.35}
.project-chapter[data-presentation="windows-desktop"] .product-comparison th,
.project-chapter[data-presentation="windows-desktop"] .product-comparison td{padding:12px 8px}
.project-chapter[data-presentation="windows-desktop"] .product-comparison th:first-child{width:54%;padding-left:0}
.project-chapter[data-presentation="windows-desktop"] .product-comparison thead th{font-size:14px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"] .spollow-testing{align-items:start;padding-top:44px}
/* Short windows retain the same upper edge, with the established compact rhythm. */
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .device-scene{padding:24px 32px 18px;gap:28px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .photo-hero-copy h2{font-size:36px;margin-bottom:14px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .photo-hero-copy>.lead{font-size:15px;line-height:1.5}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .photo-hero-copy>.photo-hero-detail{margin-top:14px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .photo-hero-copy>.shop-entry-pair{margin-top:14px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .project-page-copy h3{font-size:32px;margin-bottom:18px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .project-page-copy>p,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .project-gallery-detail p{font-size:15px;line-height:1.5;margin-bottom:12px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .project-gallery-detail{margin-top:18px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .product-comparison table{font-size:14px}
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .product-comparison th,
.project-chapter[data-presentation="windows-desktop"][data-paged="true"][data-compact-desktop="true"] .product-comparison td{padding:8px 6px}
.project-chapter[data-presentation="windows-desktop"][data-paged="false"] .product-original-preview img{max-height:560px}
@container(max-width:740px){
 .project-chapter[data-presentation="windows-desktop"] .photo-hero-copy h2{font-size:36px}
 .project-chapter[data-presentation="windows-desktop"] .project-page-copy h3{font-size:32px}
 .project-chapter[data-presentation="windows-desktop"] .product-comparison table{font-size:13px}
 .project-chapter[data-presentation="windows-desktop"] .product-comparison thead th{font-size:12px}
 .project-chapter[data-presentation="windows-desktop"] .product-comparison th,
 .project-chapter[data-presentation="windows-desktop"] .product-comparison td{padding:10px 4px}
}

/* Olli: matching store/video actions with a clear gap. */
.project-chapter[data-product="olli"] .photographic-hero .marketing-store{box-sizing:border-box;width:250px;max-width:100%}
.project-chapter[data-product="olli"] .photographic-hero .photo-hero-detail:has(.marketing-store){margin-top:12px}
