@font-face{font-family:Caslon;src:url('./fonts/caslon-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Caslon;src:url('./fonts/caslon-italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{color-scheme:light;background:#f7f5f0;color:#252420;font-family:Caslon,Georgia,serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:1px solid currentColor;outline-offset:6px}
.skip{position:fixed;left:24px;top:-80px;z-index:20}.skip:focus{top:64px;background:#f7f5f0;padding:8px}
header{position:fixed;inset:0 0 auto;z-index:10;display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding:18px 28px;background:transparent}
.logo{font-size:14px;font-style:italic;line-height:24px;min-width:32px;min-height:24px}
nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px 30px;font-size:15px;line-height:24px}
nav a{white-space:nowrap;opacity:.64;transition:opacity .15s}nav a:hover,nav a[aria-current=page]{opacity:1}nav a[aria-current=page]{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
main{padding:clamp(150px,22vh,240px) 7vw 80px;min-height:145vh;max-width:900px}h1{font-size:20px;font-weight:400;line-height:1.4;margin:0 0 34px}p{font-size:18px;line-height:1.65;max-width:610px;margin:0 0 22px}.note{margin-top:68px;font-style:italic}
@media(max-width:700px){header{padding:15px 18px;gap:22px}.logo{font-size:13px}nav{max-width:330px;gap:7px 18px;font-size:14px;line-height:23px}main{padding:170px 24px 64px}h1{font-size:19px}p{font-size:16px;line-height:1.65}}
@media(prefers-reduced-motion:reduce){nav a{transition:none}}

.logo{display:flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px;margin-top:-9px}.logo img{display:block;width:42px;height:42px;object-fit:contain}nav sup{font-family:inherit;font-weight:inherit;font-style:normal;font-size:.65em;line-height:0;position:relative;top:-.55em;vertical-align:baseline}.brand-page{max-width:none;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:100px 8vw 70px}.wordmark{display:block;width:min(78vw,500px);height:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.logo{width:36px;height:36px;flex-basis:36px;margin-top:-5px}.logo img{width:36px;height:36px}.brand-page{padding:125px 5vw 65px}}

.menu-toggle{display:none}.menu-toggle,.menu-close{font:inherit;color:inherit;border:0;background:transparent;padding:0;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center;flex:none}.menu-toggle:focus-visible,.menu-close:focus-visible{outline:1px solid currentColor;outline-offset:2px}.menu-lines{display:flex;flex-direction:column;gap:5px;width:21px}.menu-lines i{height:1px;background:currentColor;width:100%;display:block}#mobile-menu{display:none}.menu-close{display:flex;font-family:Arial,sans-serif;font-size:29px;font-weight:300;line-height:1}html.menu-open{overflow:hidden}
@media(max-width:900px){
 header{padding:12px 14px;align-items:center;justify-content:flex-start;gap:0}.menu-ready .menu-toggle{display:flex}header .logo{margin:0;width:44px;height:44px;flex-basis:44px}header .logo img{width:38px;height:38px}.menu-ready header>nav{display:none}
 #mobile-menu[open]{display:block;position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:12px 14px max(24px,env(safe-area-inset-bottom));border:0;background:#f7f5f0;color:#252420;overflow:auto;overscroll-behavior:contain}#mobile-menu::backdrop{background:#f7f5f0}.menu-top{display:flex;align-items:center;gap:0}.menu-top .logo{margin:0;width:44px;height:44px;flex-basis:44px}.menu-top .logo img{width:38px;height:38px}#mobile-menu nav{display:flex;flex-direction:column;align-items:stretch;gap:0;max-width:none;margin:32px 0 0;padding:0 10px;font-size:18px;line-height:1.5}#mobile-menu nav a{display:flex;align-items:center;min-height:48px;padding:10px 0;opacity:1;width:100%}#mobile-menu nav sup{align-self:center;top:-.55em}#mobile-menu nav a[aria-current=page]{text-decoration:underline;text-underline-offset:5px}
}


.collection-page{max-width:1440px;margin:0 auto;padding:150px 5vw 100px;min-height:100vh}.collection-page h1{font-size:18px;margin-bottom:65px}.works{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5vw;align-items:start}.work{margin:0;min-width:0}.work-image{height:390px;display:flex;align-items:center;justify-content:center}.work-image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.work figcaption{font-size:13px;line-height:1.65;margin-top:27px}.work figcaption div:first-child{margin-bottom:5px}.collection-text{max-width:610px;margin-top:120px}.collection-text p{font-size:15px;line-height:1.75}@media(max-width:900px){.work-image{height:290px}.works{gap:30px}.collection-page{padding:125px 28px 80px}}@media(max-width:650px){.collection-page{padding:120px 24px 70px}.collection-page h1{margin-bottom:48px}.works{grid-template-columns:1fr;gap:75px}.work{max-width:380px;width:100%;margin:0 auto}.work-image{height:auto;min-height:0}.work-image img{width:auto;max-width:100%;height:auto;max-height:440px}.work figcaption{margin-top:22px;font-size:13px}.collection-text{margin-top:95px}}

.home-page{max-width:none;min-height:100svh;padding:105px 24px 50px;display:flex;align-items:center;justify-content:center}.home-art{display:block;width:auto;height:auto;max-width:100%;max-height:min(70svh,600px)}.contact-page{max-width:none;min-height:100svh;padding:120px 24px 70px;display:flex;flex-direction:column;justify-content:center;align-items:center}.contact-wordmark{display:block;width:155px;height:auto;margin:0 0 12px}.contact-email{font-size:15px;line-height:1.6}.contact-email:hover{text-decoration:underline;text-underline-offset:4px}@media(max-width:650px){.home-page{padding:100px 28px 45px}.home-art{max-height:68svh;max-width:100%}.contact-wordmark{width:140px}.contact-email{font-size:14px}}

.portrait-stage{position:relative;width:min(760px,88vw);aspect-ratio:736/470;touch-action:pan-y}.portrait-fallback{position:absolute;width:90%;height:auto;left:5%;top:6%;display:block}.portrait-stage canvas{display:block;width:100%;height:100%}.portrait-stage.is-ready .portrait-fallback{visibility:hidden}.contact-picture{display:block;width:155px;height:auto;margin-bottom:24px}@media(max-width:650px){.portrait-stage{width:100%}.contact-picture{width:140px}}

.works{row-gap:85px}@media(max-width:650px){.works{row-gap:75px}}

/* v10: point-cloud portrait + controls */
.home-page{flex-direction:column;gap:18px}
.portrait-stage{cursor:grab;user-select:none;-webkit-user-select:none}.portrait-stage.is-dragging{cursor:grabbing}
.particle-panel{width:min(760px,88vw);display:flex;justify-content:flex-end}
.particle-panel details{width:260px;font-size:13px;line-height:1.4}
.particle-panel summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(37,36,32,.25);font-style:italic}
.particle-panel summary::-webkit-details-marker{display:none}
.particle-panel summary::after{content:'+';font-style:normal;opacity:.6}.particle-panel details[open] summary::after{content:'–'}
.particle-row{display:grid;grid-template-columns:62px 1fr 52px;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(37,36,32,.1)}
.particle-row label{opacity:.72}.particle-row output{text-align:right;font-variant-numeric:tabular-nums}
.particle-row input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:18px;background:transparent;margin:0}
.particle-row input[type=range]::-webkit-slider-runnable-track{height:1px;background:#252420}
.particle-row input[type=range]::-moz-range-track{height:1px;background:#252420}
.particle-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;border-radius:50%;background:#252420;margin-top:-5px;border:0}
.particle-row input[type=range]::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:#252420;border:0}
.particle-row input[type=range]:focus-visible{outline:1px solid #252420;outline-offset:3px}
.particle-reset{font:inherit;font-style:italic;color:inherit;background:none;border:0;padding:8px 0 0;cursor:pointer;opacity:.64}.particle-reset:hover{opacity:1}
@media(max-width:650px){.particle-panel{width:100%;justify-content:stretch}.particle-panel details{width:100%}.particle-row{grid-template-columns:70px 1fr 56px;padding:10px 0}}

/* v11: PISCATOR — panels first, jewellery beside the text */
.collection-split{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:6vw;align-items:start;margin-top:130px}
.collection-split .collection-text{margin-top:0}
.works.works-objects{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.4vw;row-gap:48px}
.works-objects .work-image{height:250px}
.works-objects figcaption{margin-top:16px;font-size:12px}
@media(max-width:1100px){.collection-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5vw}.works.works-objects{grid-template-columns:repeat(2,minmax(0,1fr))}.works-objects .work-image{height:220px}}
@media(max-width:650px){
 .collection-split{grid-template-columns:1fr;gap:72px;margin-top:95px}
 .works.works-objects{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;row-gap:44px}
 .works-objects .work{max-width:none;margin:0}
 .works-objects .work-image{height:190px}
 .works-objects .work-image img{max-height:190px}
 .works-objects figcaption{margin-top:12px;font-size:12px}
}

/* v12: sound grid on the home page */
.sound-grid{width:min(760px,88vw);margin:90px 0 40px}
.sound-stage{width:100%}
.sound-stage canvas{display:block;width:100%;cursor:crosshair;touch-action:manipulation}
.sound-bar{display:flex;align-items:baseline;gap:22px;margin-top:14px;font-size:13px;border-top:1px solid rgba(37,36,32,.25);padding-top:9px}
.sound-bar button{font:inherit;font-style:italic;color:inherit;background:none;border:0;padding:4px 0;cursor:pointer;opacity:.7}
.sound-bar button:hover,.sound-bar button[aria-pressed=true]{opacity:1}
.sound-bar button[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.sound-bar button:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.sound-info{margin-left:auto;opacity:.6;font-variant-numeric:tabular-nums}
.sound-note{font-size:12px;opacity:.55;margin:10px 0 0;font-style:italic}
@media(max-width:650px){.sound-grid{width:100%;margin-top:70px}.sound-bar{gap:18px}}

/* v13: sound bar wraps cleanly on phones (mode button added) */
.sound-bar{flex-wrap:wrap;row-gap:4px}.sound-bar button,.sound-info{white-space:nowrap}
@media(max-width:650px){.sound-info{margin-left:0;width:100%;font-size:12px}}

/* v14: sound grid sits beside the controls, right under the portrait, so both can be seen while playing */
.home-lower{width:min(760px,88vw);display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:44px;align-items:start;margin-top:8px}
.home-lower .sound-grid{width:auto;margin:0}
.home-lower .particle-panel{width:auto;display:block}
.home-lower .particle-panel details{width:100%}
@media(max-width:760px){.home-lower{grid-template-columns:1fr;gap:40px}.home-lower .particle-panel{order:-1}}
@media(max-width:650px){.home-lower{width:100%}}
