/* Revision 2: measured typography and case geometry from ksusharmony.com. */
@font-face{font-family:Archivo;src:url('fonts/archivo-variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:FavoritMono;src:url('fonts/abc-favorit-mono-variable-trial.ttf') format('truetype');font-style:normal;font-weight:300 1000;font-display:swap}
@font-face{font-family:PlexMono;src:url('fonts/ibm-plex-mono-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--cloud-dancer:#f0eee9;--plum-noir:#351e28;--accent:#e9f056;--paper:var(--cloud-dancer);--ink:var(--plum-noir);--muted:#715e67;--line:#351e282e;--scene:var(--cloud-dancer);--ref:1;--mono:FavoritMono,PlexMono,'Courier New',monospace;--sans:Archivo,Plex,Arial,sans-serif}
html{font-family:var(--mono);font-size:calc(9px * var(--ref));font-weight:350;line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref));text-transform:uppercase;background:var(--paper)}
.site-header{padding:calc(24px * var(--ref)) 4.06vw;font-family:var(--mono);font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref));letter-spacing:calc(.8px * var(--ref))}
.identity{font-family:var(--sans);font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref));letter-spacing:calc(.8px * var(--ref));max-width:270px;gap:calc(6px * var(--ref))}
.identity strong{font-weight:600}.identity small{font-family:var(--mono);font-size:calc(8px * var(--ref));line-height:calc(14px * var(--ref));max-width:280px;font-weight:400;letter-spacing:calc(.6px * var(--ref))}
.tools{font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref));gap:calc(24px * var(--ref))}
.language{gap:calc(6px * var(--ref))}.language span{font-size:inherit}.text-button,.icon-button{min-height:36px}.icon-button{min-width:36px}
button svg{width:15px;height:15px;stroke-width:1.1}
.home{height:100svh;min-height:0;padding:0;overflow:hidden;background:var(--scene)}
.scene{position:absolute;inset:0;left:0;top:0;transform:none;width:100%;height:100%;max-width:none;aspect-ratio:auto;min-height:0;margin:0}
.portrait{inset:0;top:0;left:0;width:100%;height:100%;object-fit:cover;mask-image:none;-webkit-mask-image:none}
.intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:12;pointer-events:none;transition:opacity 450ms ease}
.intro-pending .stone,.intro-pending .face-target{opacity:0;pointer-events:none}.intro-finished .intro-video{opacity:0}.intro-finished .stone{opacity:1}
.stone{transform:none;transition:opacity 350ms ease;z-index:5}.stone img{filter:blur(1.5px)}
.stone-label{font-family:var(--mono);font-size:calc(9px * var(--ref));line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref));opacity:0;white-space:normal;width:max-content;max-width:180px;top:calc(100% + 10px);text-transform:uppercase}
.stone:hover .stone-label,.stone:focus-visible .stone-label,.stone.is-selected .stone-label{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.stone.is-selected img{filter:blur(0)}.stone.label-above .stone-label{top:auto;bottom:calc(100% + 10px)}
.face-target{z-index:3}.home-footer{left:4.06vw;right:4.06vw;bottom:calc(18px * var(--ref));font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref));letter-spacing:calc(.8px * var(--ref))}
.home-footer .disciplines{font-size:calc(8px * var(--ref));letter-spacing:calc(.6px * var(--ref))}.footer-link{min-height:36px}
.contact-card{font-family:var(--mono);padding:calc(31px * var(--ref));right:4.06vw;width:calc(365px * var(--ref));bottom:76px;background:var(--paper);box-shadow:none}
.contact-card h1{font-family:var(--sans);font-size:calc(24px * var(--ref));line-height:calc(26px * var(--ref));font-weight:250;letter-spacing:calc(.2px * var(--ref));text-transform:none}
.eyebrow{font-family:var(--mono);font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.8px * var(--ref));font-weight:350}
.contact-links a{font-size:calc(9px * var(--ref));line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref))}.response-time{font-size:calc(8px * var(--ref));line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref))}
.about-home .stone,.about-home .face-target{opacity:0;pointer-events:none}
.about-on-image{position:absolute;inset:0;z-index:15;pointer-events:none}
.about-column{position:absolute;top:16vh;max-height:calc(100svh - 160px);overflow:auto;scrollbar-width:thin;scrollbar-color:#351e2855 transparent;pointer-events:auto;background:none;border:0;padding:0}
.about-column.left{left:5%;width:26%}.about-column.right{left:75%;width:20%}
.about-column .about-intro{font-family:var(--sans);font-size:calc(24px * var(--ref));line-height:calc(26px * var(--ref));letter-spacing:calc(.2px * var(--ref));font-weight:250;text-transform:none;margin:18px 0 25px}
.about-column p,.about-column li,.about-column .service-row strong{font-family:var(--mono);font-size:calc(8px * var(--ref));line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref));font-weight:400;margin-bottom:12px}
.about-column h2{font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.8px * var(--ref));font-weight:350;margin:26px 0 14px}
.about-column h2:first-child{margin-top:0}.about-column ul,.about-column ol{padding:0;list-style:none;margin:0}
.about-column .info-block{border:0;padding:0;margin:26px 0 0}.about-column .service-row{margin-bottom:9px}
.about-mobile-top,.about-mobile-reader{display:none}
.project-view{background:var(--paper);padding:0;min-height:100svh;font-family:var(--mono);font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.8px * var(--ref))}
#app[data-view=project] .site-header{padding-top:calc(14px * var(--ref))}
#app[data-view=project] .identity{position:fixed;left:4.06vw;bottom:calc(18px * var(--ref));font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref))}
#app[data-view=project] .tools{position:fixed;left:4.06vw;top:calc(50px * var(--ref));gap:16px}
.case-title{position:fixed;left:4.06vw;top:calc(14px * var(--ref));z-index:45;font-family:var(--sans);font-size:calc(14px * var(--ref));line-height:calc(16px * var(--ref));letter-spacing:calc(.8px * var(--ref));font-weight:603;margin:0;max-width:19vw}
.case-context{position:absolute;left:25.716%;top:45.293svh;width:16.958%;font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.8px * var(--ref))}
.case-context p{margin:0 0 calc(12px * var(--ref))}.case-context h2,.case-details h2{font-family:var(--mono);font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.8px * var(--ref));font-weight:350;margin:0 0 calc(12px * var(--ref))}
.case-context .meta-section{margin-top:calc(24px * var(--ref))}.case-context ul{padding:0;list-style:none;margin:0}.case-context li{margin:0}
.case-intro-media{margin-left:58.125%;width:41.875%;display:grid;gap:calc(3px * var(--ref))}
.case-intro-media figure,.case-gallery figure{margin:0}.case-intro-media img,.case-gallery img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.case-content{margin-left:25.716%;width:74.284%}
.case-statement{width:38.2%;padding:calc(34px * var(--ref)) 0 calc(32px * var(--ref))}
.case-statement .statement{font-family:var(--sans);font-size:calc(18px * var(--ref));line-height:calc(18px * var(--ref));font-weight:700;letter-spacing:calc(2px * var(--ref));text-transform:uppercase;margin:0}
.case-statement h2{font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));font-weight:350;margin:0 0 calc(8px * var(--ref))}
.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:calc(3px * var(--ref))}
.case-gallery .wide{grid-column:1/-1}.case-gallery .single-right{grid-column:2}
.case-details{grid-column:1;padding:calc(26px * var(--ref)) calc(38px * var(--ref)) calc(22px * var(--ref)) 0;font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref))}
.case-details p{margin:0}.case-figure-label{font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));padding:calc(8px * var(--ref)) 0 calc(18px * var(--ref))}
.case-footer{margin-left:25.716%;width:70.2%;display:flex;justify-content:space-between;padding:calc(45px * var(--ref)) 0 calc(25px * var(--ref));font-size:calc(9px * var(--ref));line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref))}
@media(max-width:700px){
 html{font-size:calc(9px * var(--ref))}.home{height:100svh;min-height:0;padding:0}.scene{inset:0;position:absolute;width:100%;height:100%;aspect-ratio:auto;min-height:0;max-width:none}
 .site-header{padding:17px 18px}.identity{max-width:190px;font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref))}.identity small{font-size:calc(8px * var(--ref));line-height:calc(14px * var(--ref));max-width:195px}.tools{gap:10px;font-size:calc(9px * var(--ref))}
 .language button{min-height:44px;min-width:24px}.icon-button,.text-button{min-height:44px;min-width:44px}
 .portrait{inset:0;top:0;height:100%;width:100%;object-fit:cover;mask-image:none;-webkit-mask-image:none}
 .stone{transform:none}.stone img{filter:blur(.8px)}.stone::before{inset:-12px -15px}
 .stone-label{opacity:0;top:calc(100% + 9px);font-size:calc(9px * var(--ref));line-height:calc(14px * var(--ref));letter-spacing:calc(.6px * var(--ref));max-width:116px;width:116px;transform:translate(-50%,0);pointer-events:none}
 .stone:hover .stone-label{opacity:0}.stone:focus-visible .stone-label,.stone.is-selected .stone-label{opacity:1;pointer-events:auto}.stone.decorative{display:none}
 .home-footer{left:18px;right:18px;bottom:14px;font-size:calc(9px * var(--ref));line-height:calc(10px * var(--ref));gap:12px}.footer-link{min-height:44px}
 .contact-card{left:12px;right:12px;bottom:12px;width:auto;padding:30px 25px}.contact-card h1{font-size:calc(24px * var(--ref));line-height:calc(26px * var(--ref));max-width:none}.contact-links a{font-size:calc(9px * var(--ref));line-height:calc(14px * var(--ref));min-height:44px}.response-time{font-size:calc(8px * var(--ref));line-height:calc(14px * var(--ref))}
 .about-column{display:none}.about-mobile-top{display:block;position:absolute;left:20px;right:20px;top:92px;pointer-events:auto}
 .about-mobile-top .about-intro{font-family:var(--sans);font-size:calc(24px * var(--ref));line-height:calc(26px * var(--ref));letter-spacing:calc(.2px * var(--ref));font-weight:250;text-transform:none;margin:10px 0 0;max-width:350px}
 .about-mobile-reader{display:block;position:absolute;left:20px;right:20px;bottom:76px;pointer-events:auto;overflow:hidden}
 .about-tabs{display:flex;justify-content:flex-start;gap:10px;align-items:center;overflow:auto;border-bottom:1px solid #351e2835}
 .about-tabs button{font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.5px * var(--ref));min-height:38px;white-space:nowrap}
 .about-tabs button[aria-selected=true]{text-decoration:underline;text-underline-offset:4px}
 .about-mobile-copy{overflow:auto;max-height:100%;font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.6px * var(--ref));padding-top:9px;scrollbar-width:thin;scrollbar-color:#351e2866 transparent}
 .about-mobile-copy p{margin:0 0 10px}.about-mobile-copy ul,.about-mobile-copy ol{list-style:none;margin:0;padding:0}.about-mobile-copy li{margin-bottom:9px}.about-mobile-copy h2{font-size:inherit;margin:0 0 8px;font-weight:400}
 #app[data-view=project] .identity{left:18px;bottom:12px;font-size:calc(8px * var(--ref));line-height:calc(10px * var(--ref))}
 #app[data-view=project] .site-header{padding-top:8px}.case-title{left:18px;top:18px;max-width:50vw;font-size:calc(14px * var(--ref));line-height:calc(16px * var(--ref))}
 #app[data-view=project] .tools{left:auto;right:18px;top:8px;gap:10px}
 .case-context{position:static;left:auto;top:auto;width:auto;padding:125px 18px 28px;display:grid;grid-template-columns:1fr 1fr;gap:24px;font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref))}
 .case-context .meta-section{margin-top:0}.case-intro-media{margin-left:0;width:100%;gap:3px}.case-content{margin-left:0;width:100%}
 .case-statement{width:75%;padding:30px 18px}.case-statement .statement{font-size:calc(18px * var(--ref));line-height:calc(18px * var(--ref))}.case-statement h2{font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref))}
 .case-gallery{gap:3px}.case-gallery .single-right{grid-column:2}.case-details{padding:22px 18px;font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref))}.case-details h2{font-size:inherit;line-height:inherit}
 .case-footer{margin-left:18px;width:calc(100% - 36px);padding-bottom:68px;font-size:calc(9px * var(--ref));line-height:calc(14px * var(--ref))}
}
.about-compact .about-on-image{--ref:var(--about-ref)}
.about-compact .about-column{display:none}
.about-compact .about-mobile-top{display:block;position:absolute;left:20px;right:20px;top:92px;pointer-events:auto}
.about-compact .about-mobile-top .about-intro{font-family:var(--sans);font-size:calc(24px * var(--ref));line-height:calc(26px * var(--ref));letter-spacing:calc(.2px * var(--ref));font-weight:250;text-transform:none;margin:10px 0 0;max-width:450px}
.about-compact .about-mobile-reader{display:block;position:absolute;left:20px;right:20px;bottom:76px;pointer-events:auto;overflow:hidden}
.about-compact .about-tabs{display:flex;justify-content:flex-start;gap:10px;align-items:center;overflow:auto;border-bottom:1px solid #351e2835}
.about-compact .about-tabs button{font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.5px * var(--ref));min-height:38px;white-space:nowrap}
.about-compact .about-tabs button[aria-selected=true]{text-decoration:underline;text-underline-offset:4px}
.about-compact .about-mobile-copy{overflow:auto;max-height:100%;font-size:calc(8px * var(--ref));line-height:calc(12px * var(--ref));letter-spacing:calc(.6px * var(--ref));padding-top:9px;scrollbar-width:thin;scrollbar-color:#351e2866 transparent}
.about-compact .about-mobile-copy p{margin:0 0 10px}
.about-compact .about-mobile-copy ul,.about-compact .about-mobile-copy ol{list-style:none;margin:0;padding:0}
.about-compact .about-mobile-copy li{margin-bottom:9px}
.about-compact .about-mobile-copy h2{font-size:inherit;margin:0 0 8px;font-weight:400}
html[data-still=true] *,html[data-still=true] *::before,html[data-still=true] *::after{animation:none!important;transition:none!important}

/* User palette: Cloud Dancer / Plum Noir / Wasabi. */
.home{overflow:clip}
body{cursor:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><circle cx="7" cy="7" r="3" fill="%23351E28"/></svg>') 7 7,auto}
button:not(:disabled),a{cursor:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><circle cx="12" cy="12" r="8" fill="%23E9F056" stroke="%23351E28" stroke-width="1"/></svg>') 12 12,pointer}
::selection{background:var(--accent);color:var(--ink)}
.stone-label{background:var(--accent);color:var(--ink);padding:4px 6px}
.text-button:hover span,.footer-link:hover,.language button:hover,.about-tabs button:hover,.about-tabs button[aria-selected=true]{background:var(--accent);color:var(--ink);text-decoration:none}
.contact-links a:hover,.index-panel a:hover{background:var(--accent);color:var(--ink)}
.icon-button:not(:disabled):hover{background:var(--accent);color:var(--ink);border-radius:50%}
button:focus-visible,a:focus-visible{outline-color:var(--plum-noir);box-shadow:0 0 0 4px var(--accent)}
.stone:focus-visible{box-shadow:none;outline-color:var(--accent)}
.home-footer .disciplines{color:var(--muted)}
@media(max-width:700px){body,button:not(:disabled),a{cursor:auto}}
