/* Private homepage only. Ordinary PHP content works before any enhancement. */
body[data-home-world-review=true]{--hw-paper:#f2eee5;--hw-ink:#152c32;--hw-muted:#52666a;--hw-line:#b6c6c5;--hw-accent:#006c79;background:var(--hw-paper);color:var(--hw-ink)}
[data-theme=dark] body[data-home-world-review=true]{--hw-paper:#09151e;--hw-ink:#f2eee5;--hw-muted:#abc2c5;--hw-line:#2b424b;--hw-accent:#75d9d8}
[data-home-world-review=true] #page-shell{background:var(--hw-paper)}
[data-home-world-review=true] .header{background:var(--hw-paper);border-bottom-color:var(--hw-line)}
[data-home-world-review=true] .footer{margin-top:0;padding-top:48px;padding-bottom:48px;border-top-color:var(--hw-line)}
[data-home-world-review=true] .ambient-glow{display:none}
[data-home-world-review=true][data-home-opening] .support-dock{visibility:hidden}
.hw-root :is(.hw-questions summary):focus-visible{outline:3px solid var(--hw-accent);outline-offset:5px}
.hw-opening{height:100svh;min-height:420px;position:relative;display:grid;place-items:center;background:#000;color:#f2eee5;color-scheme:dark;isolation:isolate}
.hw-opening>img{display:block;width:clamp(220px,34vw,430px);height:auto;aspect-ratio:1;object-fit:contain}
.hw-scroll-cue{position:absolute;bottom:max(32px,env(safe-area-inset-bottom));left:calc(50% - 22px);width:44px;height:52px;display:grid;place-items:center;text-decoration:none}
.hw-scroll-cue span{width:1px;height:28px;background:#79d6d5;position:relative}
.hw-scroll-cue span::after{content:"";position:absolute;width:6px;height:6px;border-right:1px solid #79d6d5;border-bottom:1px solid #79d6d5;transform:rotate(45deg);left:-3px;bottom:0}
.hw-root{overflow:clip;color:var(--hw-ink)}
.hw-shell{width:min(1500px,calc(100% - clamp(40px,7.2vw,120px)));margin-inline:auto}
.hw-root h1,.hw-root h2,.hw-root h3{font-weight:500}
.hw-root em{color:var(--hw-accent)}
.hw-root p{max-width:none}
.hw-eyebrow{font-size:.66rem;font-weight:650;letter-spacing:.14em;margin:0;text-transform:uppercase;color:var(--hw-muted)}
.hw-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:44px}
.hw-meta>span{font-size:.63rem;letter-spacing:.12em;color:var(--hw-muted)}
.hw-introduction{padding-top:44px;scroll-margin-top:calc(var(--head) + 24px)}
.hw-headline{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(240px,.7fr);align-items:end;gap:50px;margin-bottom:48px}
.hw-headline h1{font-size:clamp(3.5rem,7.65vw,8rem);line-height:1;letter-spacing:-.065em;margin:0;max-width:none}
.hw-intro-copy{padding-bottom:5px}
.hw-intro-copy p{font-size:clamp(1rem,1.24vw,1.2rem);line-height:1.7;color:var(--hw-muted);margin-bottom:20px}
.hw-link{display:inline-flex;align-items:center;min-height:44px;text-decoration-thickness:1px;text-underline-offset:7px;font-size:.9rem;font-weight:600;color:var(--hw-accent)}
.hw-world{height:clamp(440px,46vw,690px);position:relative;overflow:hidden;border-radius:28px;isolation:isolate;color:#f2eee5;background:radial-gradient(ellipse at 50% 58%,#173e51 0,#0c2333 36%,#06121e 78%)}
.hw-world::after{content:"";position:absolute;inset:0;border:1px solid #a5d2de2b;border-radius:inherit;pointer-events:none;z-index:3}
.hw-world-caption{position:absolute;top:34px;left:38px;z-index:2;pointer-events:none}
.hw-world-caption>span,.hw-world-bottom>span{font-size:.58rem;letter-spacing:.16em;color:#b5d3d5}
.hw-world-caption p{font-size:clamp(1.5rem,2.5vw,2.5rem);line-height:1.15;letter-spacing:-.035em;margin:22px 0 0}
.hw-world-bottom{position:absolute;bottom:30px;left:38px;right:38px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:20px}
.hw-film-link{color:#f2eee5;display:inline-flex;min-height:48px;align-items:center;font-size:.86rem;text-decoration:none;border:1px solid #d3ecec66;border-radius:30px;padding:10px 21px;background:#06121e99;backdrop-filter:blur(8px);transition:background .2s,border-color .2s}
.hw-film-link:hover{background:#246071;border-color:#75d9d8}
.hw-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hw-sculpture{position:absolute;inset:15% 20% 16%;perspective:800px}
.hw-crystal{position:absolute;width:45%;aspect-ratio:1;left:27%;top:17%;clip-path:polygon(50% 0,100% 35%,78% 89%,22% 100%,0 43%);background:conic-gradient(from 18deg at 55% 40%,#b4ece7,#1b8494,#074c67,#66bdbb,#b4ece7);transform:rotate(-15deg);box-shadow:inset 20px 20px 60px #0006}
.hw-orbit{position:absolute;inset:15% 2%;border:clamp(8px,1.3vw,18px) solid #90c1c2;border-top-color:#dcf3ec;border-right-color:#214a60;border-radius:50%;transform:rotate(-29deg) rotateX(55deg);box-shadow:0 8px 12px #0006}
.hw-orbit-second{inset:2% 20%;border-width:7px;border-color:#138cb1 #055985 #06415c #75d9d8;transform:rotate(33deg) rotateY(55deg)}
.hw-satellite{position:absolute;width:14%;aspect-ratio:1;clip-path:polygon(50% 0,100% 30%,78% 100%,21% 85%,0 30%);background:conic-gradient(#cce2d8,#5c959c,#113650,#cce2d8)}
.hw-satellite-one{left:0;top:12%;transform:rotate(20deg)}.hw-satellite-two{right:1%;bottom:10%;width:11%;transform:rotate(-25deg)}
.hw-world[data-renderer=webgl] .hw-sculpture{visibility:hidden}
.hw-capabilities{padding-block:110px 100px}
.hw-section-heading{display:grid;grid-template-columns:.6fr 1.4fr;gap:48px;margin-bottom:60px}
.hw-section-heading>.hw-eyebrow{padding-top:10px}
.hw-section-heading h2,.hw-thinking h2{font-size:clamp(2.3rem,4.2vw,4.6rem);line-height:1.08;letter-spacing:-.055em;margin:0 0 24px}
.hw-section-heading>div>p{max-width:47ch;color:var(--hw-muted);font-size:1.02rem;margin:0}
.hw-service-gallery{display:grid;grid-template-columns:1.15fr .85fr;gap:52px 32px}
.hw-service{min-width:0}
.hw-service-websites-web-apps{grid-row:span 2}
.hw-service-picture{position:relative;display:block;overflow:hidden;border-radius:20px;background:#0a1c2a;aspect-ratio:1.8;isolation:isolate}
.hw-service-websites-web-apps .hw-service-picture{aspect-ratio:.9}
.hw-service-websites-web-apps .hw-art-crop>img{transform:translateX(-64%)}
.hw-art-crop{position:absolute;inset:0;overflow:hidden;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.hw-art-crop>img{position:absolute;height:100%;width:auto;max-width:none;left:50%;transform:translateX(-76%);object-fit:cover}
.hw-service:not(.hw-service-websites-web-apps) .hw-art-crop>img{height:155%;top:-20%;transform:translateX(-76%)}
.hw-art-dark{display:none}.hw-art-light{display:block}
[data-theme=dark] .hw-art-dark{display:block}[data-theme=dark] .hw-art-light{display:none}
.hw-service-picture:hover .hw-art-crop,.hw-service-picture:focus-visible .hw-art-crop{transform:scale(1.04)}
.hw-picture-label{position:absolute;right:18px;bottom:18px;background:#06121ee6;color:#e5f0eb;border:1px solid #93c4c24d;border-radius:30px;font-size:.59rem;letter-spacing:.1em;padding:10px 14px}
.hw-service-copy{padding-top:22px;display:grid;grid-template-columns:1fr;gap:9px}
.hw-service-copy h3{font-size:clamp(1.3rem,1.8vw,1.8rem);letter-spacing:-.03em;margin:0}
.hw-service-copy h3 a{text-decoration:none}.hw-service-copy h3 a:hover{text-decoration:underline}
.hw-service-copy p{font-size:.93rem;color:var(--hw-muted);max-width:47ch;margin:0}
.hw-further{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:85px;border-top:1px solid var(--hw-line);padding-top:40px}
.hw-further>div>p:not(.hw-eyebrow){max-width:35ch;margin-top:22px;color:var(--hw-muted)}
.hw-service-list a{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--hw-line);text-decoration:none;font-size:clamp(1.15rem,1.8vw,1.6rem);letter-spacing:-.025em;min-height:64px}
.hw-service-list a:first-child{padding-top:0}.hw-service-list a:hover{color:var(--hw-accent)}.hw-service-list small{font-size:.65rem;letter-spacing:0;color:var(--hw-muted);white-space:nowrap}
.hw-product-room{background:#071b28;color:#f2eee5;border-radius:36px;margin-inline:18px;overflow:hidden}
.hw-products-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;padding-block:100px}
.hw-products-copy{max-width:520px}.hw-products-copy .hw-eyebrow{color:#a3c9cc}
.hw-products-copy h2{font-size:clamp(2.8rem,5.2vw,5.4rem);line-height:1.02;letter-spacing:-.06em;margin:32px 0}.hw-products-copy em{color:#75d9d8}
.hw-products-copy>p:not(.hw-eyebrow){color:#b1c9cb;font-size:1.03rem;max-width:43ch;margin-bottom:32px}
.hw-button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 25px;border-radius:28px;background:#75d9d8;border:1px solid #75d9d8;color:#08212d;text-decoration:none;font-size:.88rem;font-weight:600;transition:background .2s,transform .2s}
.hw-button:hover{background:#a8e9e4;transform:translateY(-2px)}
.hw-product-object{position:relative;min-height:410px;display:grid;place-items:center;isolation:isolate;perspective:800px}
.hw-product-disc{position:absolute;width:85%;height:37%;border-radius:50%;bottom:12%;background:radial-gradient(ellipse at 45% 20%,#86c2c8 0,#256578 42%,#0b2638 64%,#020b12 72%);box-shadow:0 25px 28px #0009;transform:rotate(-8deg)}
.hw-product-object>img{width:clamp(160px,18vw,250px);border-radius:25%;transform:rotate(-12deg) rotateY(-18deg);box-shadow:25px 35px 30px #0008;z-index:1}
.hw-product-label{position:absolute;bottom:0;left:0;right:0;text-align:center;display:grid;gap:5px}.hw-product-label>span{font-size:1.15rem}.hw-product-label small{font-size:.72rem;color:#b1c9cb}
.hw-thinking{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-block:120px}
.hw-thinking-heading .hw-eyebrow{margin-bottom:32px}.hw-thinking-heading>p:not(.hw-eyebrow){color:var(--hw-muted);max-width:42ch}
.hw-questions{padding-top:32px}.hw-questions details{border-top:1px solid var(--hw-line);padding-block:24px}.hw-questions details:last-child{border-bottom:1px solid var(--hw-line)}
.hw-questions summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:25px;align-items:center;font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.3;letter-spacing:-.025em;min-height:44px}.hw-questions summary::-webkit-details-marker{display:none}
.hw-questions summary>span{font-size:1.5rem;font-weight:400;color:var(--hw-accent);transition:transform .2s}.hw-questions details[open] summary>span{transform:rotate(45deg)}
.hw-questions details>p{margin:20px 45px 0 0;font-size:.95rem;color:var(--hw-muted);max-width:48ch}
.hw-closing{padding-block:60px 90px;border-top:1px solid var(--hw-line)}
.hw-closing h2{font-size:clamp(3.4rem,8.2vw,8.4rem);line-height:1.02;letter-spacing:-.065em;margin:40px 0}
.hw-closing>div{display:flex;justify-content:space-between;gap:30px;align-items:center}.hw-closing>div>p{margin:0;color:var(--hw-muted);font-size:1.03rem}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.hw-product-object>img{transition:transform .45s}.hw-product-object:hover>img{transform:rotate(-5deg) rotateY(0) translateY(-8px)}}
@media(max-width:1000px){.hw-headline{grid-template-columns:1fr;gap:30px}.hw-intro-copy{display:flex;align-items:center;justify-content:space-between;gap:32px}.hw-intro-copy p{max-width:45ch;margin:0}.hw-link{flex-shrink:0}.hw-section-heading{grid-template-columns:1fr;gap:28px}.hw-thinking{gap:45px}.hw-products-inner{gap:30px}.hw-world-caption p{max-width:7ch}.hw-service-gallery{gap:40px 24px}}
@media(max-width:700px){.hw-shell{width:calc(100% - 40px)}.hw-meta{margin-bottom:30px}.hw-meta>span{display:none}.hw-introduction{padding-top:28px}.hw-headline{margin-bottom:30px;gap:25px}.hw-headline h1{font-size:clamp(3rem,11.8vw,5rem)}.hw-intro-copy{display:block}.hw-intro-copy p{font-size:.98rem;margin-bottom:13px}.hw-world{height:470px;border-radius:20px}.hw-world-caption{left:23px;top:25px}.hw-world-caption p{font-size:1.6rem;margin-top:15px}.hw-world-bottom{left:23px;right:23px;bottom:22px;display:block}.hw-world-bottom>span{display:none}.hw-film-link{font-size:.8rem;padding-inline:18px;background:#06121ed9}.hw-sculpture{inset:28% 2% 23%}.hw-capabilities{padding-block:70px}.hw-section-heading{margin-bottom:35px}.hw-section-heading h2,.hw-thinking h2{font-size:2.6rem}.hw-service-gallery{grid-template-columns:1fr;gap:36px}.hw-service-websites-web-apps{grid-row:auto}.hw-service-websites-web-apps .hw-service-picture{aspect-ratio:1.15}.hw-service:not(.hw-service-websites-web-apps) .hw-service-picture{aspect-ratio:1.35}.hw-service:not(.hw-service-websites-web-apps) .hw-art-crop>img{height:125%;top:-10%}.hw-service-copy{padding-top:18px}.hw-further{grid-template-columns:1fr;gap:22px;margin-top:52px;padding-top:28px}.hw-further>div>p:not(.hw-eyebrow){margin-bottom:0}.hw-product-room{margin-inline:10px;border-radius:23px}.hw-products-inner{grid-template-columns:1fr;padding-block:60px;gap:22px}.hw-products-copy h2{font-size:3.4rem;margin:25px 0}.hw-product-object{min-height:340px}.hw-product-object>img{width:185px}.hw-product-disc{width:85%;height:35%;bottom:17%}.hw-thinking{grid-template-columns:1fr;gap:20px;padding-block:75px}.hw-thinking-heading .hw-eyebrow{margin-bottom:25px}.hw-questions{padding-top:10px}.hw-questions details{padding-block:18px}.hw-questions details>p{margin-right:15px}.hw-closing{padding-block:40px 65px}.hw-closing h2{font-size:clamp(3rem,11.8vw,5rem);margin-block:30px}.hw-closing>div{align-items:start;flex-direction:column;gap:25px}}
@media(max-width:360px){.hw-shell{width:calc(100% - 32px)}.hw-world{min-height:440px}.hw-headline h1,.hw-closing h2{font-size:2.75rem}.hw-section-heading h2,.hw-thinking h2{font-size:2.25rem}.hw-service-list a{font-size:1.1rem;gap:10px}.hw-service-list small{font-size:.58rem}.hw-film-link{font-size:.76rem;padding-inline:14px}}
@media(prefers-reduced-motion:reduce){.hw-root *,.hw-opening *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Without scripting, keep the mobile navigation in flow and fully usable. */
@media(max-width:1100px){[data-home-world-review=true] .header:has(#menu[hidden]){flex-wrap:wrap}[data-home-world-review=true] .header:has(#menu[hidden]) #navigation{position:static;flex-basis:100%;order:5;padding:12px 0;max-height:none;box-shadow:none}}

/* Give the mobile caption, complete sculpture and real film link separate rows.
   Caption growth at narrow widths or enlarged text never covers the artwork. */
@media(max-width:700px){
 .hw-world{height:auto;min-height:470px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(240px,1fr) auto;gap:12px;padding:25px 23px 22px}
 .hw-world-caption{position:static;grid-column:1;grid-row:1}
 .hw-world-caption p{max-width:none}
 .hw-sculpture{position:relative;inset:auto;grid-column:1;grid-row:2;width:100%;height:clamp(240px,70vw,350px)}
 .hw-canvas{position:relative;inset:auto;grid-column:1;grid-row:2;width:100%;height:100%;align-self:stretch}
 .hw-world-bottom{position:static;grid-column:1;grid-row:3}
 .hw-crystal{top:20%;width:43%;left:28%}
 .hw-orbit{inset:21% 5%}
 .hw-orbit-second{inset:10% 24%}
 .hw-satellite-one{left:2%;top:17%}.hw-satellite-two{right:3%;bottom:12%}
}

@media(max-width:360px){[data-home-world-review=true] .header{gap:6px}[data-home-world-review=true] .header .theme-label{flex-shrink:0}[data-home-world-review=true] .header .theme-label select{width:90px;min-width:90px;max-width:90px}}

/* Native-scroll expansion stays inside the available viewport, including its scrollbar. */
.hw-world{width:calc(100% + 2 * var(--hw-bleed,0px));margin-inline:calc(-1 * var(--hw-bleed,0px));border-radius:var(--hw-radius,28px)}
@media(max-width:700px){.hw-world{border-radius:var(--hw-radius,20px)}}
