.making { font:400 clamp(19px,1.9vw,29px)/1.1 'Hiragino',serif; letter-spacing:-.045em; border:0; padding:4px 0; background:transparent; z-index:14; cursor:pointer; transition:color .6s ease,text-decoration-color .6s ease; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:7px; }
.making:hover,.making:focus-visible,.making.halo-lit { color:#ed864c; text-decoration-color:currentColor; }
.making:focus-visible { outline:2px solid #ffad72; outline-offset:8px; }
.project-card { pointer-events:none; }
body.card-rest .cursor-blob,body.card-rest .cursor-tail { animation:lume-colour-flow 18s ease-in-out infinite alternate,halo-heartbeat 3.05s ease-in-out infinite; }
@keyframes halo-heartbeat {0%,100%{scale:1;opacity:.92;}50%{scale:.78;opacity:.55;}}
.contact-dialog { position:fixed; inset:0; margin:auto; width:min(920px,92vw); max-height:90svh; padding:0; border:0; overflow:visible; background:transparent; perspective:1400px; color:#161616; }
.contact-dialog::backdrop { background:rgb(255 255 255 / .35); backdrop-filter:blur(0px); transition:backdrop-filter .8s ease,background .8s ease; }
.contact-dialog.is-open::backdrop { backdrop-filter:blur(16px); background:rgb(255 255 255 / .55); }
.contact-card { position:relative; display:grid; grid-template-columns:.85fr 1.15fr; gap:34px; background:#fffaf5; border-radius:48px; corner-shape:superellipse(1.35); padding:48px; max-height:90svh; overflow:auto; box-shadow:0 28px 100px #5c38251c; opacity:0; transform:rotateY(-78deg) translateY(35px) scale(.94); transition:transform 1.15s cubic-bezier(.22,1,.36,1),opacity .6s ease; }
.is-open .contact-card { opacity:1; transform:rotateY(0) translateY(0) scale(1); }
.contact-close { position:absolute; top:16px; right:24px; border:0; background:none; font:30px Helvetica,Arial,sans-serif; padding:8px; cursor:pointer; }
.contact-eyebrow { font:10px Helvetica,Arial,sans-serif; letter-spacing:.15em; margin:16px 0 28px; }
.contact-intro h2 { font:400 clamp(30px,3.6vw,48px)/1.08 'Hiragino',serif; letter-spacing:-.06em; margin:0 0 38px; }
.contact-intro a { display:block; width:fit-content; color:inherit; text-underline-offset:4px; font:14px Helvetica,Arial,sans-serif; margin:18px 0; overflow-wrap:anywhere; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:19px 16px; font:13px Helvetica,Arial,sans-serif; }
.contact-form label { display:flex; flex-direction:column; gap:9px; }
.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea { width:100%; min-width:0; border:0; border-bottom:1px solid #d8cfc6; padding:10px 0; border-radius:0; background:transparent; font:16px Helvetica,Arial,sans-serif; color:#222; }
.contact-form textarea { resize:vertical; }
.contact-form :focus-visible { outline:2px solid #efaa78; outline-offset:4px; }
.contact-form fieldset,.contact-form .full,.company-field,.contact-submit,.contact-hint,.contact-status { grid-column:1/-1; }
.contact-form fieldset { border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px; }
.contact-form legend { margin-bottom:12px; }
.contact-form fieldset label { position:relative; }
.contact-form fieldset span { border:1px solid #d8cfc6; border-radius:24px; padding:10px 13px; cursor:pointer; }
.contact-form input[type=checkbox] { position:absolute; opacity:0; }
.contact-form input:checked+span { background:#ffe0c6; border-color:#eea16c; }
.contact-form input:focus-visible+span { outline:2px solid #eea16c; outline-offset:3px; }
.contact-submit { border:0; border-radius:28px; background:#f6c09a; color:#222; padding:15px; font:15px Helvetica,Arial,sans-serif; cursor:pointer; }
.contact-hint,.contact-status { font-size:11px; line-height:1.5; margin:0; color:#6a625c; }
body.contact-open { overflow:hidden; }
body.contact-open,body.contact-open * { cursor:auto!important; }
body.contact-open a,body.contact-open button { cursor:pointer!important; }
body.contact-open .cursor-halo { opacity:0!important; }
.music-toggle { position:fixed; z-index:20; bottom:18px; right:24px; padding:9px; border:0; background:rgb(255 255 255 / .75); border-radius:20px; font:11px Helvetica,Arial,sans-serif; letter-spacing:.03em; color:#666; cursor:pointer; }
.music-toggle[aria-pressed=true] { color:#a46438; }
@media(max-width:650px){.making{font-size:20px;}.contact-dialog{width:92vw;}.contact-card{grid-template-columns:1fr;padding:30px 24px;gap:20px;border-radius:32px;}.contact-intro h2{font-size:34px;margin-bottom:18px;}.contact-intro h2 br{display:none;}.contact-eyebrow{margin:12px 0 20px;}.contact-intro a{margin:10px 0;}.music-toggle{right:10px;bottom:16px;}}
@media(prefers-reduced-motion:reduce){.contact-card{transform:none!important;}.card-rest .cursor-blob,.card-rest .cursor-tail{animation:none!important;}}

.making:hover,.making:focus-visible,.making.halo-lit { background-image:var(--lume-gradient); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 0 22px rgb(255 174 100 / .22); }

/* Center the project frame in the viewport; navigation sits on the logo axis. */
.project-card { top:50%; width:min(76vw,calc((100svh - 200px)*1.414)); }
.project-word { top:50%; margin-top:-.55em; z-index:4; pointer-events:none; }
.project-deck { z-index:3; }
.studio-header { z-index:16; }
.project-progress { z-index:15; bottom:auto; transform:translate(-50%,-50%); flex-direction:column; gap:15px; align-items:center; }
.project-progress button { width:32px; height:32px; padding:0; border-radius:8px; overflow:hidden; opacity:.55; transform:scale(1); transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .6s ease; }
.project-progress button img { width:100%; height:100%; object-fit:cover; display:block; }
.project-progress button[aria-current="true"] { transform:scale(1.2); opacity:1; text-decoration:none; }
.project-progress button:hover { opacity:1; }
.cursor-dot { position:fixed; left:0; top:0; width:7px; height:7px; margin:-3.5px; border-radius:50%; background:#f47832; z-index:40; pointer-events:none; opacity:0; }
body.contact-open .cursor-dot { visibility:hidden; }
@media(max-width:650px){.project-card{width:min(80vw,calc((100svh - 220px)*.82));}.project-progress{gap:12px;}.project-progress button{width:22px;height:22px;border-radius:6px;}}
@media(hover:none),(pointer:coarse){.cursor-dot{display:none;}}

/* A quiet line that draws itself, then breathes under the invitation. */
.making,.making:hover,.making:focus-visible,.making.halo-lit { text-decoration:none; }
.making::after { content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px; border-radius:100%; background:var(--lume-gradient); background-size:220% 100%; transform:scaleX(0); transform-origin:left center; opacity:0; transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .6s ease; }
.making:hover::after,.making:focus-visible::after,.making.halo-lit::after { transform:scaleX(1); opacity:1; animation:invitation-line 3.05s ease-in-out infinite; }
@keyframes invitation-line { 0%,100%{translate:0 0; background-position:0% 50%;}50%{translate:0 2px;background-position:100% 50%;} }
.project-progress button { width:40px; height:40px; border-radius:10px; }
.cursor-dot { width:10px; height:10px; margin:-5px; }
.project-card.in-pile { box-shadow:0 5px 12px rgb(37 29 19 / .1); }
@media(max-width:650px){.project-progress button{width:28px;height:28px;border-radius:8px;}.project-card{width:min(76vw,calc((100svh - 220px)*.82));}}
@media(prefers-reduced-motion:reduce){.making::after{animation:none!important;transition:none;}}
