:root{--paper:#f6f6f4;--ink:#222528;--muted:#72777c;--line:#dcdedc;--blue:#dceef4;--accent:#45738a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Source Han Sans CN','Noto Sans CJK SC','Microsoft YaHei',sans-serif;font-size:15px;line-height:1.8}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #47859f;outline-offset:5px}header{height:86px;padding:0 4.5%;display:flex;align-items:center;gap:44px;background:#f6f6f4ed;backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.wordmark{font-family:Arial,sans-serif;font-size:27px;font-weight:800;letter-spacing:-1.5px}.wordmark span{font-size:10px;vertical-align:top;margin-left:3px}nav{display:flex;gap:29px;margin:auto}nav a{font-size:13px;color:#666;position:relative}nav a.active{color:#111}nav a.active:after{content:'';position:absolute;bottom:-12px;left:0;right:0;height:2px;background:#222}.nav-note{font-size:11px;color:var(--muted)}main{min-height:65vh}.wrap{width:min(1280px,91%);margin:auto}.eyebrow{font:11px Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:22px}.hero{padding:65px 0 0}.hero-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px}.hero h1{font-size:clamp(45px,6.2vw,88px);line-height:1.14;letter-spacing:-4px;font-weight:500;margin:0}.hero h1 em{font-family:Arial,sans-serif;font-style:normal;font-weight:400;color:#8c969c}.hero-intro{max-width:270px;font-size:14px;color:#666;margin-bottom:5px}.hero-image{position:relative;background:#eee;overflow:hidden}.hero-image img{width:100%;display:block;aspect-ratio:2.25;object-fit:cover;object-position:center 66%}.hero-caption{position:absolute;bottom:25px;left:30px;font-size:12px}.hero-caption span{display:block;font-size:10px;color:#777}.round-link{position:absolute;bottom:25px;right:28px;background:#fff;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-size:24px;transition:transform .25s}.round-link:hover{transform:rotate(45deg)}.section{padding:90px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:36px}.section h2,.section-heading h2{font-size:clamp(26px,3.3vw,43px);font-weight:500;line-height:1.35;letter-spacing:-1px;margin:0 0 18px}.section-heading p{font-size:13px;color:var(--muted);max-width:350px}p{margin:0 0 18px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:32px}.project-image{height:360px;background:#eeefed;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:contain;transition:transform .5s}.project-card:hover img{transform:scale(1.025)}.project-info{display:flex;justify-content:space-between;gap:15px;margin-top:20px}.project-info h3{font-size:22px;font-weight:500;margin:0}.project-info small{font-size:11px;color:var(--muted)}.project-info .arrow{font-size:26px}.tags{color:var(--muted);font-size:11px;letter-spacing:.3px}.intro-strip{display:grid;grid-template-columns:1fr 2fr;gap:60px}.intro-strip p{font-size:25px;line-height:1.8}.text-link{border-bottom:1px solid #555;padding-bottom:5px;font-size:13px;display:inline-block}.case-head{padding:65px 0 35px}.case-head h1{font-size:clamp(37px,5vw,68px);line-height:1.2;font-weight:500;letter-spacing:-2px;margin:15px 0 24px}.case-head .summary{max-width:680px;color:#60676b;font-size:17px}.meta{display:flex;gap:50px;margin-top:35px;font-size:12px}.meta span{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.full-image{width:100%;display:block;max-height:680px;object-fit:contain;background:#efefed}.subnav{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:20px 0;font-size:12px;overflow:auto;white-space:nowrap}.split{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;align-items:center}.split.reverse{grid-template-columns:1.2fr 1fr}.copy{color:#62696e;max-width:560px}.copy strong{color:#30363a;font-weight:500}.quote{font-size:clamp(23px,3vw,36px);line-height:1.6;letter-spacing:-.5px;max-width:800px;margin:25px 0}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:35px}.fact{border-top:1px solid #aaa;padding-top:18px}.fact b{display:block;font-size:15px;font-weight:500;margin-bottom:10px}.fact p{font-size:13px;color:#74797c}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:35px}.step{padding:20px 0;border-top:1px solid var(--line)}.step small{color:#6c91a5;font:12px Arial}.step h3{font-size:18px;font-weight:500;margin:12px 0}.step p{color:#777;font-size:13px}.photo{width:100%;display:block;object-fit:contain;max-height:560px}.zoom{border:0;padding:0;background:none;display:block;width:100%;cursor:zoom-in}.caption{font-size:11px;color:#777;margin-top:12px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.gallery img{width:100%;aspect-ratio:1;object-fit:contain;background:#eeefed}.gallery h3{font-size:15px;font-weight:500}.gallery p{font-size:12px;color:#777}.panel{padding:40px;background:#eaf0f1}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0}.tabs button,.pill{background:transparent;border:1px solid #c9ced0;padding:10px 19px;border-radius:25px;font-size:12px;color:#5f686d}.tabs button[aria-pressed=true]{background:#252a2d;color:#fff;border-color:#252a2d}.monitor{border-radius:22px;background:#202629;color:#fff;padding:35px;min-height:280px;box-shadow:0 18px 45px #22333b12}.monitor .label{font-size:12px;color:#b4cdd7}.monitor .value{font:68px Arial;margin:20px 0 0;letter-spacing:-3px}.monitor .unit{color:#a3b5bf;font:13px Arial}.wave{height:55px;width:100%;margin-top:20px}.demo-note{font-size:11px;color:#687b84;margin-top:15px}.ui-area{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.phone{width:280px;max-width:100%;margin:auto;padding:9px;background:#fff;border:1px solid #ddd;border-radius:32px;box-shadow:0 20px 60px #0000000c;position:relative}.phone img{display:block;width:100%;border-radius:23px}.phone-nav{position:absolute;bottom:12px;left:11px;right:11px;height:47px;display:grid;grid-template-columns:repeat(4,1fr)}.phone-nav button{background:transparent;border:0;border-radius:10px}.phone-nav button:focus-visible{background:#cde6f177}.color-img{height:380px;width:100%;object-fit:contain}.swatches{display:flex;gap:15px;margin:20px 0}.swatches button{width:34px;height:34px;border-radius:50%;border:3px solid var(--paper);outline:1px solid #bbb}.swatches button[aria-pressed=true]{outline:2px solid #222}.comparison{background:#ebeeed;padding:35px}.comparison img{height:330px;width:100%;object-fit:contain}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:18px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-weight:500;color:#777}.status-good{color:#3f6f64}.status-bad{color:#7a5f58}.module-display{background:#eef0ee;padding:30px;min-height:400px;display:flex;align-items:center}.module-display img{width:100%;max-height:360px;object-fit:contain}.next-project{padding:60px 0;display:flex;justify-content:space-between;align-items:center}.next-project h2{font-size:38px;font-weight:400;margin:10px 0}.plain-page{padding:80px 0 100px;min-height:70vh}.plain-page h1{font-size:clamp(40px,6vw,76px);font-weight:400;line-height:1.2;margin:20px 0 40px}.about-copy{font-size:23px;max-width:800px;line-height:1.9}.skill-list{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:60px}.skill-list article{border-top:1px solid #aaa;padding-top:20px}.skill-list h3{font-size:18px;font-weight:500}.skill-list p{color:#777;font-size:14px}.placeholder{padding:50px;border:1px dashed #abb7bd;background:#eef2f3;margin-top:30px}.placeholder h2{font-weight:400}.contact-email{font:clamp(23px,5vw,64px) Arial;letter-spacing:-1px;overflow-wrap:anywhere}.button{display:inline-block;background:#252a2d;color:#fff;border:1px solid #252a2d;padding:12px 25px;border-radius:3px;font-size:13px;margin:8px 10px 8px 0}.button.secondary{color:#252a2d;background:transparent}.note{font-size:12px;color:#7a8185}footer{padding:50px 4.5% 25px;display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:20px;background:#e9eae7}footer p{font-size:14px;color:#6b706f;margin:0}footer>a:last-of-type{text-align:right;font-size:13px}footer small{grid-column:1/-1;border-top:1px solid #d3d5d1;padding-top:20px;margin-top:20px;font-size:10px;color:#818782}dialog{border:0;padding:40px;background:#f7f7f5;max-width:92vw;max-height:92vh}dialog::backdrop{background:#111b}dialog img{display:block;max-width:80vw;max-height:75vh;object-fit:contain}dialog p{font-size:12px;margin:12px 0 0}.close{position:absolute;top:3px;right:10px;border:0;background:none;font-size:30px}.skip{position:fixed;top:-100px;background:#fff;z-index:50}.skip:focus{top:0}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:12px 24px;border-radius:8px;display:none;z-index:50}.reveal{animation:appear .6s both}@keyframes appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:900px){.nav-note{display:none}header{gap:20px}nav{margin-left:auto;margin-right:0;gap:20px}.hero-intro{max-width:230px}.split,.split.reverse{gap:30px}.project-image{height:280px}.gallery{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){header{height:auto;min-height:90px;padding:12px 5%;flex-wrap:wrap;gap:10px}.wordmark{font-size:23px}nav{width:100%;justify-content:space-between;gap:8px;order:2}nav a{font-size:11px}nav a.active:after{bottom:-5px}.hero{padding-top:35px}.hero-top{display:block;margin-bottom:25px}.hero h1{letter-spacing:-2px;font-size:46px}.hero-intro{max-width:100%;margin-top:25px}.hero-image img{aspect-ratio:1.15;object-position:60% center}.hero-caption{left:15px;bottom:16px}.round-link{right:15px;bottom:15px;width:40px;height:40px}.section{padding:55px 0}.projects,.split,.split.reverse,.ui-area,.intro-strip{grid-template-columns:1fr;gap:30px}.section-heading{display:block}.project-image{height:290px}.project-info h3{font-size:20px}.intro-strip p{font-size:20px}.case-head{padding-top:40px}.case-head h1{letter-spacing:-1px}.meta{gap:20px;flex-wrap:wrap}.meta div{min-width:40%}.facts,.steps{grid-template-columns:1fr 1fr}.panel{padding:25px}.monitor{padding:25px}.monitor .value{font-size:55px}.phone{width:280px}.gallery{gap:15px}.comparison{padding:20px}.comparison img{height:280px}.skill-list{grid-template-columns:1fr;gap:20px}.about-copy{font-size:20px}.plain-page{padding-top:45px}.placeholder{padding:25px}.next-project h2{font-size:28px}.contact-email{font-size:29px}footer{grid-template-columns:1fr 1fr}footer p{grid-column:1/-1;order:3}footer small{order:4}footer>a:last-of-type{grid-column:2;grid-row:1}.subnav{gap:22px}.full-image{min-height:210px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

@media(prefers-reduced-motion:no-preference){.scroll-reveal{opacity:.01;transform:translateY(16px);transition:opacity .65s,transform .65s}.scroll-reveal.in-view{opacity:1;transform:none}}

/* Pointer feedback: no layout changes, no product distortion. */
.hover-hint{position:fixed;top:0;left:0;z-index:40;pointer-events:none;visibility:hidden;opacity:0;padding:8px 13px;border-radius:30px;background:rgba(34,39,42,.92);color:#f6f6f4;font-size:11px;line-height:1.5;letter-spacing:.5px;white-space:nowrap;box-shadow:0 4px 14px #0000000c;transition:opacity .16s ease,visibility .16s ease}
.hover-hint.is-visible{visibility:visible;opacity:1}
@media(hover:hover) and (pointer:fine){
 .project-image{position:relative}
 .project-image:after{content:'';position:absolute;inset:0;border:1px solid transparent;pointer-events:none;transition:border-color .35s ease,background .35s ease}
 .project-image img{transition:transform .65s cubic-bezier(.22,.61,.36,1)}
 .project-card:hover .project-image img{transform:scale(1.018)}
 .project-card:hover .project-image:after{border-color:#8199a640;background:#aacad209}
 .project-info h3,.next-project h2{transition:color .28s ease;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:7px}
 .project-card:hover h3,.next-project:hover h2{color:#477084;text-decoration-color:#91a6ad70}
 .project-info .arrow{transition:transform .4s cubic-bezier(.22,.61,.36,1),color .3s ease}
 .project-card:hover .arrow{transform:translate(3px,-3px);color:#477084}
 .zoom{position:relative;overflow:hidden}
 .zoom img{transition:transform .65s cubic-bezier(.22,.61,.36,1),filter .35s ease}
 .zoom:hover img{transform:scale(1.012);filter:brightness(.985)}
 .zoom:after{content:'↗';position:absolute;right:14px;bottom:14px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#f6f6f4e8;color:#3d535e;opacity:0;transform:translateY(3px);transition:opacity .25s ease,transform .35s ease;pointer-events:none}
 .zoom:hover:after{opacity:1;transform:none}
 .hero-image img{transition:transform .7s cubic-bezier(.22,.61,.36,1)}
 .hero-image:hover img{transform:scale(1.012)}
 .round-link:hover{transform:none;background:#dceef4}
 .round-link{transition:background .25s ease}
 main img.full-image{transition:filter .4s ease}
 main img.full-image:hover{filter:brightness(.98)}
 .text-link{transition:color .25s ease,border-color .25s ease}
 .text-link:hover{color:#477084;border-color:#91a6ad}
}
@media(prefers-reduced-motion:reduce){
 .project-card:hover .project-image img,.project-card:hover .arrow,.zoom:hover img,.hero-image:hover img,.zoom:hover:after{transform:none!important}
 .hover-hint{display:none}
}
@media(hover:none),(pointer:coarse){.hover-hint{display:none}.project-card:hover img{transform:none}.round-link:hover{transform:none}}

/* A small optical lens for the desktop navigation, with no layout shift. */
.nav-lens{position:fixed;left:0;top:0;width:104px;height:56px;border-radius:50%;overflow:hidden;z-index:25;pointer-events:none;opacity:0;visibility:hidden;background:var(--paper);box-shadow:0 5px 16px #34495712;transition:opacity .2s ease,visibility .2s ease;contain:layout paint}
.nav-lens.visible{opacity:1;visibility:visible}
.nav-lens:after{content:'';position:absolute;inset:0;border-radius:inherit;border:1px solid #ffffffd9;background:linear-gradient(145deg,#ffffff55,transparent 42%,#b7d4e21a 75%,#ffffff66);box-shadow:inset 0 1px 2px #fff,inset 0 -1px 3px #66899c33}
.nav-lens-copy{position:absolute;display:flex;align-items:center;gap:44px;background:var(--paper);border-bottom:1px solid var(--line);pointer-events:none}
.nav-lens-copy nav a{color:#344c58}
@media(hover:none),(pointer:coarse),(max-width:620px){.nav-lens{display:none}}
@media(prefers-reduced-motion:reduce){.nav-lens{display:none}header nav a:hover{color:var(--accent)}}

/* Charcoal editorial theme. Existing layout and original media are preserved. */
:root{color-scheme:dark;--paper:#191a1b;--ink:#f2f1ed;--muted:#a3a5a7;--line:#36383a;--blue:#c2dce7;--accent:#bdd8e5;--surface:#222426;--body-copy:#c2c3c3}
body{font-weight:400;-webkit-font-smoothing:antialiased}
header{background:#191a1bf2;border-bottom-color:var(--line)}
nav a{color:#bcbec0}nav a.active{color:var(--ink)}nav a.active:after{background:var(--ink)}
.hero h1,.case-head h1,.plain-page h1{font-weight:600}
.hero h1 em{color:#b2b5b6;font-weight:400}
.section h2,.section-heading h2{font-weight:550}
.project-info h3,.step h3,.gallery h3,.skill-list h3,.fact b{font-weight:550}
.hero-intro,.case-head .summary,.copy,.about-copy{color:var(--body-copy)}
.copy strong{color:var(--ink);font-weight:600}
.fact p,.step p,.gallery p,.skill-list p,.caption,.note,.demo-note,th{color:var(--muted)}
.step small{color:var(--muted)}.fact,.skill-list article{border-color:var(--line)}
.panel,.comparison,.placeholder{background:var(--surface)}
.placeholder{border-color:#55595d}.placeholder h2{font-weight:500}
.tabs button,.pill{border-color:#62666a;color:var(--body-copy)}
.tabs button[aria-pressed=true]{background:#efefeb;color:#202224;border-color:#efefeb}
#metric-tabs button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#19252b}
.monitor{background:#111719;box-shadow:none;border:1px solid #35454c}
.monitor .label,.monitor .unit{color:#b9d1dc}
.text-link{border-color:#85898b}
.button{background:var(--ink);color:#1b1c1d;border-color:var(--ink)}
.button.secondary{background:transparent;color:var(--ink);border-color:#686b6e}
.status-good{color:#e1e2df}.status-bad{color:#b8babd}
.swatches button{outline-color:#8d9092}.swatches button[aria-pressed=true]{outline-color:var(--ink)}
footer{background:#151617}footer p,footer small{color:var(--muted)}footer small{border-color:var(--line)}
dialog{background:#222426;color:var(--ink);border:1px solid var(--line)}dialog::backdrop{background:#090a0be6}.close{color:var(--ink)}
.skip{background:var(--ink);color:#1b1c1d}#toast{background:var(--ink);color:#1b1c1d;border:1px solid #fff3}
button:focus-visible,a:focus-visible{outline-color:var(--accent)}
/* Keep light original image backgrounds and their overlaid labels legible. */
.hero-caption{color:#242729}.hero-caption span{color:#62686b}
.round-link{background:#f2f1ed;color:#232729}
.phone{background:#2b2d2f;border-color:#515457;box-shadow:none}
.hover-hint{background:#eeefebf2;color:#242729;box-shadow:0 4px 14px #0002}
.nav-lens{background:var(--paper);box-shadow:0 5px 16px #0003}
.nav-lens-copy{background:var(--paper)}.nav-lens-copy nav a{color:var(--ink)}
.nav-lens:after{border-color:#ffffff30;background:linear-gradient(145deg,#ffffff10,transparent 45%,#ffffff03 75%,#ffffff0c);box-shadow:inset 0 1px 2px #ffffff26,inset 0 -1px 3px #0005}
@media(hover:hover) and (pointer:fine){
 header nav a:hover,.subnav a:hover{color:var(--ink)}
 .project-card:hover h3,.next-project:hover h2,.project-card:hover .arrow{color:var(--ink);text-decoration-color:#d8dbdd88}
 .project-card[href='#/roro']:hover h3,.project-card[href='#/roro']:hover .arrow{color:var(--accent)}
 .text-link:hover{color:var(--ink);border-color:var(--ink)}
 .round-link:hover{background:var(--blue)}
 .tabs button:hover{border-color:#ddd}.button:hover{background:#d9dad7;color:#191a1b}.button.secondary:hover{background:#2b2d2f;color:var(--ink)}
}

/* Short, non-repeating editorial entrances; native scrolling stays untouched. */
@media(prefers-reduced-motion:no-preference){
 .scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .6s cubic-bezier(.22,.61,.36,1);transition-delay:var(--reveal-delay,0ms)}
 .scroll-reveal.in-view{opacity:1;transform:none}
}
.project-transition{position:fixed;inset:0;z-index:60;background:#292c2e;display:grid;place-items:center;overflow:hidden;pointer-events:auto}
.project-transition span{color:var(--ink);font-size:clamp(20px,3vw,40px);font-weight:500;letter-spacing:-.5px;padding:30px;text-align:center;animation:transition-label .18s ease both}
@keyframes transition-label{from{opacity:0}to{opacity:1}}
.project-transitioning .hover-hint,.project-transitioning .nav-lens{visibility:hidden!important}
.project-transitioning #main.reveal{animation:none}
#main:focus{outline:none}
@media(max-width:620px) and (prefers-reduced-motion:no-preference){.scroll-reveal{transform:translateY(18px)}.scroll-reveal.in-view{transform:none}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1!important;transform:none!important}.project-transition{display:none}}

.screen-stage{position:relative;width:100%;max-width:1000px;margin:auto}.screen-stage>img{display:block;width:100%;height:auto;transform:none!important;filter:none!important}.screen-stage>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.screen-stage svg text{font-family:monospace;fill:#f8faff;letter-spacing:.3px}.screen-stage #oled-content{fill:#f8faff}.screen-stage #oled-progress{transform-box:fill-box;transform-origin:left center}.screen-controls{justify-content:center}.screen-demo>.note,.screen-demo>.demo-note{text-align:center}.roro-video{margin:55px 0}.roro-video video{display:block;width:100%;max-width:900px;margin:25px auto 0;background:#111;border:1px solid var(--line)}@media(max-width:620px){.screen-controls{gap:7px}.screen-controls button{padding:9px 12px;font-size:11px}.screen-stage{width:100%}}

/* Targeted review adjustments; original assets remain intact. */
.project-card[href='#/roro'] .project-image img{translate:0 10px}
.project-card[href='#/caredock'] .project-image img{translate:4% 0}
#prototype .gallery .zoom{overflow:hidden;background:transparent}
#prototype .gallery .zoom img{width:106%;max-width:none;margin-left:-3%;aspect-ratio:auto;height:auto;background:transparent}
#testing .zoom{max-width:320px;margin-inline:auto}
#testing .zoom img{max-height:280px}
main:has(.screen-demo) .case-head .summary{max-width:none}
.detail-icon{width:19px;height:19px;display:inline-block;vertical-align:-3px;margin-right:9px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.phone-lens{position:fixed;width:124px;height:124px;z-index:45;pointer-events:none;border-radius:50%;border:1px solid #ffffff88;background-repeat:no-repeat;background-color:#fff;box-shadow:0 6px 22px #0003,inset 0 0 0 2px #ffffff33}
.phone-lens[hidden]{display:none}.phone-lens:after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(140deg,#fff2,transparent 50%)}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.phone-lens{display:none}}

@font-face{font-family:'RoRo Fusion Pixel';src:url('assets/roro-pixel.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.screen-stage svg text{font-family:'RoRo Fusion Pixel',monospace;letter-spacing:0;font-weight:400}
#concept .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#concept .step h3{white-space:nowrap;font-size:16px}
@media(max-width:420px){#concept .steps{grid-template-columns:1fr}}
.phone-lens{width:44px;height:44px}
.project-card[href='#/caredock'] .project-image img{translate:calc(4% + 50px) 0}
@media(max-width:620px){.project-card[href='#/caredock'] .project-image img{translate:calc(4% + 25px) 0}}
.pointer-jewel{position:fixed;z-index:48;width:5px;height:5px;border-radius:50%;background:#f2f1ed;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s,opacity .15s,border-color .2s;border:1px solid transparent}
.pointer-jewel.visible{opacity:.8}.pointer-jewel.interactive{width:15px;height:15px;background:transparent;border-color:#f2f1ed99}.pointer-jewel.pressed{width:7px;height:7px;background:#f2f1ed}
@media(prefers-reduced-motion:no-preference){
 main:has(.hero) .project-card.scroll-reveal{opacity:0;transform:translate(-36px,20px);clip-path:inset(0 0 28% 0);transition:opacity .5s ease,transform .8s cubic-bezier(.16,1,.3,1),clip-path .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
 main:has(.hero) .project-card.scroll-reveal:nth-child(even){transform:translate(36px,20px)}
 main:has(.hero) .project-card.scroll-reveal.in-view{opacity:1;transform:none;clip-path:inset(0)}
 main:has(.hero) .section-heading.scroll-reveal{transform:translateY(28px);clip-path:inset(0 0 35% 0);transition:opacity .5s,transform .7s cubic-bezier(.16,1,.3,1),clip-path .7s cubic-bezier(.16,1,.3,1)}
 main:has(.hero) .section-heading.scroll-reveal.in-view{transform:none;clip-path:inset(0)}
 main:has(.hero) .intro-strip>.scroll-reveal{transform:translateX(-24px)}
 main:has(.hero) .intro-strip>.scroll-reveal:nth-child(2){transform:translateX(24px)}
 main:has(.hero) .intro-strip>.scroll-reveal.in-view{transform:none}
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.pointer-jewel{display:none}}

/* First viewport is reserved for the first product; introduction follows on scroll. */
.hero{display:flex;flex-direction:column;padding-top:0}
.hero-image{order:-1;height:calc(100svh - 86px);min-height:420px;display:flex;align-items:center;background:#17191b}
.hero-image>img{height:100%;aspect-ratio:auto;object-fit:contain;object-position:center}
.hero-top{margin:0;padding:90px 0 30px;gap:40px}
.pointer-jewel{width:9px;height:9px}.pointer-jewel.interactive{width:18px;height:18px}.pointer-jewel.pressed{width:11px;height:11px}
.blind-layer{display:none}
@media(prefers-reduced-motion:no-preference){
 main:has(.hero) .project-card.scroll-reveal,main:has(.hero) .project-card.scroll-reveal:nth-child(even){opacity:1;transform:none;clip-path:none;transition:none}
 main:has(.hero) .project-card.scroll-reveal .project-image>img{opacity:0}
 main:has(.hero) .project-card.scroll-reveal .blind-layer{display:block;position:absolute;inset:0;perspective:1000px;pointer-events:none}
 .blind-slice{position:absolute;left:0;right:0;top:calc(var(--slice)*100%/6);height:calc(100%/6);overflow:hidden;background:#222426;transform-origin:center top;transform:rotateX(-88deg);opacity:0;transition:transform 1s cubic-bezier(.2,.7,.2,1),opacity .3s;transition-delay:calc(var(--slice)*85ms + var(--reveal-delay,0ms));backface-visibility:hidden}
 .project-image .blind-slice img{position:absolute;left:0;top:calc(var(--slice)*-100%);width:100%;height:600%;object-fit:contain;transition:none!important;transform:none!important}
 main:has(.hero) .project-card.in-view .blind-slice{transform:rotateX(0);opacity:1}
 main:has(.hero) .project-card.in-view .project-image>img{animation:restore-card .01s 1.6s forwards}
 main:has(.hero) .project-card.in-view .blind-layer{animation:remove-blinds .01s 1.61s forwards}
 main:has(.hero) .project-card.scroll-reveal .project-info{opacity:0;transform:translateY(25px);transition:opacity .7s .45s,transform .8s .45s}
 main:has(.hero) .project-card.in-view .project-info{opacity:1;transform:none}
 @keyframes restore-card{to{opacity:1}}@keyframes remove-blinds{to{visibility:hidden}}
}
@media(max-width:620px){.hero-image{height:calc(100svh - 100px);min-height:350px}.hero-top{padding:60px 0 0}}
.hero .hero-caption{color:#f2f1ed}.hero .hero-caption span{color:#aeb4b8}

/* Align the typography to the actual rendered artwork, not its letterbox. */
.nav-lens{width:36px;height:36px;border-radius:50%}
.hero-image{display:grid;place-items:center;overflow:visible}
.hero-art{position:relative;width:min(100%,calc((100svh - 86px)*1.77943));isolation:isolate}
.hero-art>img{width:100%;height:auto;aspect-ratio:1920/1079;display:block;object-fit:contain}
.hero-art .hero-top{position:absolute;top:5%;left:3%;width:52%;z-index:2;display:block;margin:0;padding:0}
.hero-art .hero-top .eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:16px}
.hero-art h1{font-size:clamp(30px,3.7vw,54px);line-height:1.14;letter-spacing:-1.7px}
.hero-art h1 em{display:block;font-size:.62em;margin-top:12px;letter-spacing:-.7px}
.hero-art .hero-intro{font-size:12px;line-height:1.8;max-width:320px;margin-top:22px}
.hero-art .hero-intro .text-link{font-size:11px;margin-top:8px}
.hero .hero-art .hero-caption{left:3%;bottom:3%;color:#41464a;font-size:11px;line-height:1.65}
.hero .hero-art .hero-caption span{color:#53595e;font-size:9px}
.hero-art .round-link{bottom:3%;right:3%}
.project-card[href='#/caredock'] .project-image img{translate:calc(4% + 45px) 0}
@media(prefers-reduced-motion:no-preference){
 .hero-art .hero-top>div{animation:hero-copy-in .85s cubic-bezier(.16,1,.3,1) both}
 .hero-art .hero-top>.hero-intro{animation-delay:.16s}
 @keyframes hero-copy-in{from{opacity:0;transform:translateY(16px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
}
@media(max-width:620px){
 .hero-image{height:auto;min-height:calc(100svh - 100px)}
 .hero-art{width:100%;padding-top:300px}
 .hero-art .hero-top{top:20px;left:3%;width:94%}
 .hero-art h1{font-size:34px}.hero-art .hero-top .eyebrow{margin-bottom:12px}
 .hero-art .hero-intro{margin-top:16px;font-size:12px;max-width:100%}
 .hero-art .hero-caption{font-size:9px!important;bottom:12px!important}
 .hero-art .hero-caption span{font-size:7px!important}
 .project-card[href='#/caredock'] .project-image img{translate:calc(4% + 20px) 0}
}

/* Layered opening: type, introduction, untouched transparent render, link. */
.experience-hero{height:calc(100svh - 86px);min-height:420px;display:grid;place-items:center;padding:0;overflow:hidden}
.experience-art{position:relative;isolation:isolate;width:min(100%,calc((100svh - 86px)*1.77943));aspect-ratio:1920/1079}
.experience-backtype{position:absolute;z-index:0;left:1.5%;top:6%;width:90%;height:88%;object-fit:contain;filter:brightness(0) invert(1);opacity:.045;pointer-events:none}
.experience-copy{position:absolute;z-index:1;left:1.5%;top:16%;width:97%;pointer-events:none}
.experience-copy h1{font-size:clamp(22px,3.65vw,60px);font-weight:600;line-height:1.5;letter-spacing:-.8px;margin:0;color:#fafafa}
.experience-copy h1 span{white-space:nowrap}
.experience-copy p{font-family:Raleway,Arial,sans-serif;font-size:clamp(12px,1.8vw,28px);font-weight:300;color:#a5a7a8;margin-top:22px}
.experience-product{position:relative;z-index:2;width:100%;height:auto;display:block;pointer-events:none}
.experience-cta{position:absolute;z-index:3;left:1.5%;top:62%;font-size:clamp(13px,1.75vw,25px);font-weight:600;border-bottom:1px solid #fff;padding-bottom:5px;transition:letter-spacing .25s}
.experience-cta:hover{letter-spacing:.7px}
.transition-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center}
.transition-brand>img{width:clamp(160px,20vw,280px);height:64px;object-fit:contain;filter:brightness(0) invert(1)}
.project-transition .transition-brand>span{padding:0 24px;font-size:clamp(20px,3vw,40px)}
.project-card:is([href='#/roro'],[href='#/caredock']) .project-image{background:#eeefed!important;isolation:isolate}
.project-card[href='#/caredock'] .project-image>img{translate:calc(4% + 30px) 0}
.brand-hover{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#292c2ebf;opacity:0;transition:opacity .4s ease;pointer-events:none;color:#fff}
.project-image .brand-hover>img{width:180px;height:48px;object-fit:contain;filter:brightness(0) invert(1);translate:none!important;transform:none!important}
.brand-hover>span{font-size:20px;text-align:center;padding:0 15px}
.project-card:focus-visible .brand-hover{opacity:1}
@media(hover:hover){.project-card:hover .brand-hover{opacity:1}.project-card:is([href='#/roro'],[href='#/caredock']):hover .project-image>img{transform:scale(1.035)}}
.scroll-focus{filter:blur(var(--focus-blur,18px));opacity:var(--focus-opacity,.55);transform:translateY(var(--focus-y,20px));will-change:filter,transform}
@media(prefers-reduced-motion:no-preference){.experience-copy{animation:hero-copy-in .9s cubic-bezier(.16,1,.3,1) both}.experience-cta{animation:hero-copy-in .9s .2s cubic-bezier(.16,1,.3,1) both}}
@media(max-width:620px){.experience-hero{height:calc(100svh - 100px);min-height:420px}.experience-art{width:100%;min-height:400px;aspect-ratio:auto}.experience-copy{top:3%;width:96%}.experience-copy h1{font-size:26px;line-height:1.6}.experience-copy h1 span{white-space:normal;display:block;max-width:95%}.experience-copy p{font-size:14px;margin-top:14px;max-width:250px}.experience-product{position:absolute;bottom:0}.experience-cta{top:55%;font-size:16px}.experience-backtype{top:0;height:85%;object-fit:cover;object-position:left;opacity:.04}.project-card[href='#/caredock'] .project-image>img{translate:calc(4% + 5px) 0}.brand-hover>span{font-size:17px}}
@media(prefers-reduced-motion:reduce){.scroll-focus{filter:none!important;opacity:1!important;transform:none!important;will-change:auto}}

/* Background starts directly at the navigation rule. */
.experience-hero{position:relative;isolation:isolate}
.experience-hero>.experience-backtype{z-index:0;top:0;left:1.5%;width:97%;height:auto;max-height:none;object-fit:contain;object-position:left top;opacity:.075;filter:brightness(0) invert(1)}
.experience-art{z-index:1}
.scroll-focus{filter:none!important;opacity:var(--entry-opacity,1);transform:translateY(var(--entry-y,0));will-change:opacity,transform}

/* Quiet card entrances replace the former traced frames / blinds. */
main:has(.hero) .project-card.scroll-reveal{opacity:0;transform:translateY(24px);filter:none;clip-path:none;transition:opacity .7s ease,transform .85s cubic-bezier(.16,1,.3,1)}
main:has(.hero) .project-card.scroll-reveal.in-view{opacity:1;transform:none}
main:has(.hero) .project-card.scroll-reveal .project-image>img{opacity:1;animation:none}
main:has(.hero) .project-card.scroll-reveal .project-info{opacity:1;transform:none;transition:none}
.experience-cta{border-bottom:0}
.experience-cta::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.experience-cta:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.hero-particles{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.roro-model{margin:32px 0 0;border:0;background:transparent;overflow:hidden;border-radius:0}
.model-viewport{position:relative;height:clamp(350px,50vw,640px);isolation:isolate;background:transparent}
.model-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .3s;pointer-events:none}
.roro-model[data-state='ready'] .model-fallback{opacity:0}
.model-viewport model-viewer{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:1;--progress-bar-height:0;touch-action:pan-y}
.model-loading{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;background:var(--paper);color:#ddd;font-size:13px;pointer-events:none}
.model-loading[hidden]{display:none}

.model-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-top:1px solid #ffffff12}
.model-help{margin:0;font-size:12px;color:#b1b6ba;line-height:1.6}
.model-reset{flex-shrink:0;padding:9px 13px;background:transparent;color:#eee;border:1px solid #697078;border-radius:3px;cursor:pointer;font:inherit;font-size:12px}
.model-reset:hover{background:#ffffff0c}.model-reset:focus-visible{outline:2px solid #b9d5e7;outline-offset:4px}.model-reset:disabled{opacity:.4;cursor:default}
@media(max-width:620px){.model-viewport{height:390px}.model-toolbar{padding:14px;gap:10px}.model-help{font-size:10px}}
@media(prefers-reduced-motion:reduce){main:has(.hero) .project-card.scroll-reveal{opacity:1;transform:none;transition:none}.experience-cta::after{transition:none}.model-fallback{transition:none}}

/* Local RoRo presentation refinements. */
.roro-intro-render{display:block;width:100%;height:auto;min-height:0;object-fit:contain;background:transparent}
.model-viewport model-viewer{background:transparent}
.model-toolbar{border-top:0}
.model-loading-bars{display:flex;align-items:center;gap:5px;height:34px}
.model-loading-bars i{display:block;width:7px;height:30px;border-radius:4px;background:#e8eaec;transform:scaleY(.3);animation:model-bar-wave 1.2s ease-in-out infinite}
.model-loading-bars i:nth-child(2){animation-delay:.15s}.model-loading-bars i:nth-child(3){animation-delay:.3s}.model-loading-bars i:nth-child(4){animation-delay:.45s}
@keyframes model-bar-wave{0%,65%,100%{transform:scaleY(.3);opacity:.5}30%{transform:scaleY(1);opacity:1}}
.oled-idle-eyes{transform-box:fill-box;transform-origin:center;animation:oled-blink 3s ease-in-out infinite}
@keyframes oled-blink{0%,89%,100%{transform:scaleY(1)}93%,95%{transform:scaleY(.1)}}
@media(prefers-reduced-motion:reduce){.oled-idle-eyes{animation:none;transform:none}.model-loading-bars i{animation:none;transform:scaleY(.65);opacity:.8}}
@media(max-width:760px){.research-spacer{display:none}}

/* Supplied assets and restrained, consistent case-study layouts. */
.screen-invite{text-align:center;margin:26px 0 14px;font-size:19px;font-weight:600;line-height:1.7}
.screen-invite span{display:block;font-size:14px;font-weight:400;color:var(--muted)}
.screen-controls button{flex:0 0 auto;width:auto;min-width:0;padding:10px 20px;white-space:nowrap}
.research-notes{margin:52px 0 42px;padding:32px 0;border-block:1px solid var(--line)}
.research-notes>div{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:920px;margin:25px auto 0}
.research-notes article{background:#d8d9d3;color:#303538;padding:24px 28px;min-height:145px;box-shadow:0 5px 14px #0002;transform:rotate(-1deg)}
.research-notes article:nth-child(2){background:#d3dfe2;transform:rotate(1deg)}
.research-notes article:nth-child(3){background:#dedcd3;transform:rotate(-.6deg)}
.research-notes article span{font-size:11px;opacity:.65}.research-notes article p{font-size:19px;line-height:1.7;margin:10px 0 0}
.module-overview{max-width:1100px;margin:auto}.module-overview>.zoom{display:block;width:100%;background:transparent}.module-overview-image{display:block;width:100%;height:auto;object-fit:contain}
.module-copy{max-width:760px;margin:28px auto 0}.module-copy h3{font-size:21px}
#testing .split.reverse>div:first-child .zoom{width:100%;max-width:none;margin:0}#testing .split.reverse>div:first-child .photo{width:100%;height:auto;max-height:none;object-fit:contain}
.cd-use-image>.zoom{display:block;width:100%}.cd-use-image img{width:100%;height:auto;object-fit:contain}
.case-space{height:180px;margin:35px 0 0;border-top:1px solid var(--line)}
.project-card:is([href='#/dulcet'],[href='#/reco']) .project-image{background:#eeefed;isolation:isolate}
@media(hover:hover){.project-card:is([href='#/dulcet'],[href='#/reco']):hover .project-image>img{transform:scale(1.035)}}
.cd-screen-demo{text-align:center}.cd-demo-intro{max-width:680px;margin:0 auto}.cd-demo-intro .copy{max-width:none}.cd-screen-stage{position:relative;width:min(100%,560px);aspect-ratio:1;margin:20px auto;isolation:isolate}
.cd-screen-stage>img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.cd-screen-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:white}
.cd-screen-perspective{transform-box:view-box;transform-origin:1000px 650px;transform:perspective(2800px) rotateX(12deg) rotateZ(-1deg)}
.cd-screen-overlay text{font-family:'CareDock Fusion Pixel','RoRo Fusion Pixel',monospace;fill:white;font-weight:400;letter-spacing:0}
.cd-controls{justify-content:center;gap:10px}.cd-controls button{flex:0 0 auto;padding:10px 18px;min-width:0;width:auto;white-space:nowrap}
.cd-controls .cd-replay{color:var(--muted)}
.cd-playing .cd-arm path,.cd-playing .cd-cuff path{stroke-dasharray:1;animation:cd-line-enter 1.3s ease both}
.cd-playing .cd-cuff{transform-box:fill-box;transform-origin:center;animation:cd-cuff-fit 1.5s 1.5s ease-in-out both}
.cd-playing .cd-guide-arrows{transform-box:fill-box;transform-origin:42% 50%;animation:cd-arrow-hint 2.2s 3s ease-in-out both}
.cd-progress-fill{transform-origin:636px 606px;animation:cd-measuring 3.5s linear both}
@keyframes cd-line-enter{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes cd-cuff-fit{0%,100%{transform:rotate(0) scaleX(1)}35%{transform:rotate(-3deg) scaleX(.95)}70%{transform:rotate(2deg) scaleX(.97)}}
@keyframes cd-arrow-hint{0%{opacity:0;transform:rotate(-3deg)}15%{opacity:1}35%{transform:rotate(4deg)}65%{transform:rotate(-4deg)}85%{transform:rotate(2deg)}100%{opacity:1;transform:rotate(0)}}
@keyframes cd-measuring{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:620px){.research-notes>div{gap:10px}.research-notes article{padding:15px 12px;min-height:120px}.research-notes article p{font-size:13px}.cd-controls{gap:8px}.cd-controls button{padding:9px 12px;font-size:12px}.cd-screen-stage{margin:10px auto}.case-space{height:120px}}
@media(prefers-reduced-motion:reduce){.cd-playing .cd-arm path,.cd-playing .cd-cuff path,.cd-playing .cd-cuff,.cd-playing .cd-guide-arrows,.cd-progress-fill{animation:none;opacity:1;transform:none;stroke-dashoffset:0}}
@media(min-width:900px){
 .cd-screen-demo{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);grid-template-rows:1fr auto auto 1fr;gap:12px 40px;text-align:left;align-items:start}
 .cd-demo-intro{grid-column:1;grid-row:1;align-self:end;margin:0}.cd-screen-stage{grid-column:2;grid-row:1 / span 4;margin:0 auto}
 .cd-controls{grid-column:1;grid-row:2;justify-content:flex-start;margin:12px 0 0;gap:9px}
 .cd-screen-demo>.demo-note{grid-column:1;grid-row:3;margin:0}.cd-screen-demo>.note{grid-column:1;grid-row:4;margin:0;max-width:400px}
}

/* Original research photography and matched color renders. */
@font-face{font-family:"CareDock Fusion Pixel";src:url("assets/caredock-pixel.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
.research-photo{margin:48px 0 40px}.research-photo img{width:100%;height:auto;max-height:none;aspect-ratio:1670/480;object-fit:contain}
#color-image{aspect-ratio:1;object-fit:contain;background:transparent}
/* Dulcet project: original assets and calm, continuous image strips. */
.dulcet-case .dulcet-hero{max-height:none;height:auto;min-height:0;background:transparent}
.dulcet-research{margin-top:38px}.dulcet-research>img{display:block;width:100%;height:auto;margin-top:32px}.dulcet-stat{display:flex;align-items:center;gap:35px;margin:30px 0}.dulcet-stat strong{font:400 clamp(64px,8vw,108px)/1.1 Arial,sans-serif;letter-spacing:-5px;color:#e6ce79}.dulcet-stat strong span{font-size:.42em;letter-spacing:0}.dulcet-stat>span{max-width:300px;color:var(--muted)}
.dulcet-section-image{width:100%;height:auto;display:block;margin-top:35px}.dulcet-carousel{margin-top:35px;min-width:0}.dulcet-flow{overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none;width:100%;border-radius:2px}.dulcet-flow.dragging{cursor:grabbing}.dulcet-track{display:flex;width:max-content;will-change:transform}.dulcet-group{display:flex;gap:20px;padding-right:20px;flex-shrink:0}.dulcet-group figure{margin:0;flex:none}.dulcet-group img{display:block;height:320px;width:auto;max-width:none;object-fit:contain;pointer-events:none}.dulcet-group figcaption{font-size:11px;color:var(--muted);margin-top:13px;letter-spacing:.3px}.dulcet-flow-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px}.dulcet-flow-footer p{font-size:11px;color:var(--muted);margin:0}.flow-toggle{background:none;color:var(--ink);border:1px solid var(--line);padding:7px 17px;border-radius:22px;font-size:11px}
@media(max-width:620px){.dulcet-stat{gap:22px;align-items:start}.dulcet-stat strong{letter-spacing:-3px}.dulcet-stat>span{font-size:12px;padding-top:8px}.dulcet-group{gap:12px;padding-right:12px}.dulcet-group img{height:230px}.dulcet-flow-footer{gap:10px}.dulcet-flow-footer p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.dulcet-track{will-change:auto}.dulcet-flow-footer .flow-toggle{display:none}}

/* Light follows the original lamp strip; product pixels stay unchanged. */
.cd-screen-demo[data-state="measuring"] .cd-lamp{clip-path:inset(0 100% 0 0);animation:cd-lamp-fill 3.5s linear forwards}
.cd-screen-demo[data-state="completed"][data-completion="manual"] .cd-lamp{animation:cd-lamp-breathe 2.6s ease-in-out infinite}
@keyframes cd-lamp-fill{to{clip-path:inset(0 0 0 0)}}
@keyframes cd-lamp-breathe{0%,100%{opacity:1}50%{opacity:.12}}
@media(prefers-reduced-motion:reduce){.cd-screen-demo .cd-lamp{animation:none!important;clip-path:none!important;opacity:1}}
/* RECO — original research and interface imagery */
.reco-case{--reco:#bde100}.reco-case .eyebrow{color:var(--reco)}.reco-case .section{padding-top:100px;padding-bottom:80px}.reco-case .reco-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;padding-top:70px}.reco-brand{display:flex;gap:22px;align-items:center;margin:34px 0}.reco-brand h1{font-size:clamp(72px,9vw,130px);line-height:1;margin:0;letter-spacing:-.065em}.reco-logo-crop{width:70px;height:70px;overflow:hidden;border-radius:17px;position:relative;flex:none}.reco-logo-crop img{position:absolute;width:420px;max-width:none;height:auto;left:-3.4px;top:-38px}.reco-hero h2{font-size:clamp(28px,3.4vw,46px);margin:0 0 20px}.reco-subtitle{font-size:20px;color:#eee;margin:0 0 8px}.reco-english{font-size:12px;color:#85878a}.reco-hero .copy{max-width:480px;margin-top:30px}.reco-role{border-left:2px solid var(--reco);padding-left:18px;margin-top:30px;max-width:500px}.reco-role span{font-size:13px;color:#eee}.reco-role p{font-size:13px;margin:9px 0;color:#a4a5a7}.reco-hero-ui{position:relative;display:flex;justify-content:center;align-items:center;min-height:610px}.reco-hero-ui>img{width:260px;height:auto;border-radius:22px;z-index:1;box-shadow:0 30px 65px #0008;transform:rotate(4deg)}.reco-orbit{position:absolute;width:390px;height:390px;border:1px solid #bde10040;border-radius:50%}.reco-orbit:after{content:'';position:absolute;inset:35px;border:1px solid #ffffff0b;border-radius:50%}.reco-vertical{position:absolute;right:0;writing-mode:vertical-rl;font-size:10px;letter-spacing:.22em;color:#9c9e99}.reco-disciplines{grid-column:1/-1;border-top:1px solid #ffffff20;padding-top:24px;font-size:12px;letter-spacing:.04em;color:#8e9191}.reco-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:50px 0 64px;border-bottom:1px solid #ffffff20;padding-bottom:30px;gap:22px}.reco-stats strong{font-size:clamp(36px,5vw,68px);color:var(--reco);font-weight:500;letter-spacing:-.04em}.reco-stats strong span{font-size:17px;margin-left:8px}.reco-stats p{font-size:14px;color:#a9aaad}.reco-research-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px}.reco-research-grid .zoom{height:460px;display:flex;align-items:center;background:#202122;padding:20px}.reco-case .zoom img{width:100%;height:auto;object-fit:contain;border-radius:0}.reco-research-grid .zoom img{max-height:100%}.reco-case article h3{margin-top:26px;font-size:20px}.reco-case article p,.reco-services p,.reco-material p,.reco-visual p{color:#aaaeb0;font-size:15px;line-height:1.9}.reco-services{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin:42px 0}.reco-services>div{border-top:1px solid #ffffff25;padding-top:22px}.reco-services span{color:var(--reco);font-size:12px}.reco-services h3{font-size:22px;margin:20px 0 10px}.reco-case figure{margin:40px 0}.reco-diagram{padding:28px;background:#202122;border-radius:8px}.reco-case figcaption{font-size:12px;color:#929699;margin-top:20px}.reco-case .reco-light{background:#e9eae4;padding:24px}.reco-light figcaption{color:#555b54}.reco-app-experience{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:48px;align-items:center}.reco-ui-tabs{display:grid}.reco-ui-tabs button{display:grid;grid-template-columns:26px 1fr auto 20px;gap:16px;align-items:center;text-align:left;border:0;border-bottom:1px solid #ffffff20;background:transparent;color:#aaa;padding:23px 0;cursor:pointer}.reco-ui-tabs button span{font-size:11px}.reco-ui-tabs b{font-size:24px;font-weight:500}.reco-ui-tabs small{font-size:12px}.reco-ui-tabs i{font-style:normal}.reco-ui-tabs [aria-selected=true]{color:var(--reco)}.reco-ui-tabs button:focus-visible{outline:2px solid var(--reco);outline-offset:6px}.reco-ui-description{margin-top:42px;min-height:130px}.reco-ui-description h3{font-size:22px}.reco-ui-description p{font-size:15px;line-height:1.9;color:#aeb1b3;max-width:430px}.reco-ui-panel{position:relative;background:#232526;border-radius:12px;padding:36px;display:flex;justify-content:center}.reco-ui-panel img{width:280px;max-width:100%;height:auto;border-radius:14px;box-shadow:0 14px 35px #0005;aspect-ratio:329/712;object-fit:contain}.reco-screen-index{position:absolute;top:18px;left:18px;font-size:10px;letter-spacing:.12em;color:#9c9e9a}.reco-visual{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;margin-top:70px;padding-top:35px;border-top:1px solid #ffffff20}.reco-visual h3,.reco-material h3{font-size:25px}.reco-material{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center;margin:65px 0}.reco-material strong{color:#eee;font-weight:500}.reco-material-label{display:block;margin-top:26px;color:var(--reco);font-size:11px;line-height:1.8;letter-spacing:.1em}.reco-ending{display:flex;justify-content:space-between;align-items:center;gap:30px;border-top:1px solid #ffffff25;padding-top:35px;margin-top:55px}.reco-ending p{font-size:18px;color:#b3b6b7;line-height:1.9}.reco-ending>span{color:#92958c;font-size:12px;text-align:right}.reco-ending b{color:var(--reco);font-size:40px;font-weight:500;line-height:1.6}.reco-case .zoom{overflow:hidden}.reco-case .zoom:hover img{transform:scale(1.015)}
@media(max-width:800px){.reco-case .reco-hero{grid-template-columns:1fr;gap:0}.reco-hero-ui{min-height:530px;margin:25px 0}.reco-hero-ui>img{width:220px}.reco-orbit{width:310px;height:310px}.reco-case .section{padding-top:65px;padding-bottom:50px}.reco-research-grid,.reco-app-experience,.reco-visual,.reco-material{grid-template-columns:1fr;gap:30px}.reco-research-grid .zoom{height:auto;padding:15px}.reco-case .reco-diagram{padding:12px}.reco-services{gap:18px}.reco-services h3{font-size:18px}.reco-services p{font-size:13px}.reco-stats{gap:12px;margin:32px 0}.reco-stats strong{font-size:34px}.reco-stats strong span{font-size:13px}.reco-stats p{font-size:12px}.reco-ui-panel{padding:36px 20px 24px}.reco-ui-tabs b{font-size:22px}.reco-ui-description{min-height:110px;margin-top:25px}.reco-ending{align-items:flex-start}.reco-ending p{font-size:15px}.reco-ending b{font-size:30px}.reco-disciplines{line-height:1.8}}
@media(prefers-reduced-motion:reduce){.reco-case .zoom:hover img{transform:none}}
/* RECO refinements: integrated diagrams and full-resolution phone screens. */
.reco-case .reco-research-grid .zoom{background:transparent;padding:0}
.reco-case .reco-diagram:not(.reco-light){background:transparent;padding:0;border-radius:0}
.reco-case .reco-ui-panel{background:transparent;border-radius:0;padding:36px 20px 24px}
.reco-phone-frame{position:relative;box-sizing:border-box;width:300px;max-width:100%;padding:10px;border:2px solid #777b7e;border-radius:34px;background:#101112;box-shadow:0 0 0 2px #090a0b,0 22px 45px #0005;flex:none}
.reco-phone-frame:before,.reco-phone-frame:after{content:'';position:absolute;width:3px;border-radius:3px;background:#777b7e;left:-5px;top:95px;height:40px}
.reco-phone-frame:after{left:auto;right:-5px;top:125px;height:64px}
.reco-case .reco-phone-frame img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:945/2048;object-fit:contain;background:#fff;border-radius:23px;box-shadow:none;transform:none}
.reco-hero-ui .reco-phone-frame{width:280px;transform:rotate(4deg);z-index:1}
.dulcet-stat strong{font-weight:800;color:#f9a628}
.dulcet-sketch-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;margin-top:30px}
.dulcet-sketch-pair .dulcet-section-image{display:block;width:100%;height:auto;max-width:100%;margin:0;object-fit:contain}
@media(max-width:600px){.reco-hero-ui .reco-phone-frame{width:240px}.dulcet-sketch-pair{grid-template-columns:1fr;gap:20px}}
/* Targeted review adjustments: equal-height sketches and original PNG presentation. */
.dulcet-sketch-pair{align-items:stretch}
.dulcet-sketch-pair .dulcet-section-image{height:auto;aspect-ratio:1.65;object-fit:fill;align-self:stretch}
.reco-hero-ui .reco-phone-artwork{padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}
.reco-hero-ui .reco-phone-artwork:before,.reco-hero-ui .reco-phone-artwork:after{display:none}
.reco-case .reco-phone-artwork img{aspect-ratio:852/1846;background:transparent;border-radius:0}
#iteration .comparison{background:transparent;padding:0;overflow:hidden}
#iteration #compare-image.compare-dock{transform:translateX(10%)}
/* Fill only the two secondary project covers; keep logos and card geometry unchanged. */
.project-card:is([href='#/dulcet'],[href='#/reco']) .project-image>img,
.project-card:is([href='#/dulcet'],[href='#/reco']) .project-image .blind-slice img{object-fit:fill}
