:root{--wall: #2a0a14;--ink: #fff8f0}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--wall);color:var(--ink)}body{font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}canvas#field{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block;z-index:0}.hero{position:relative;height:140vh;z-index:1}.hero-ui{position:sticky;top:0;height:100vh;pointer-events:none;overflow:hidden}.name{position:absolute;top:28px;left:32px;display:grid;font-family:"Instrument Serif",serif;font-size:20px;letter-spacing:.01em;mix-blend-mode:difference;color:#fff;pointer-events:auto;cursor:default;outline:none}.name>span{grid-area:1 / 1;white-space:nowrap;transition:opacity .6s cubic-bezier(.22,1,.36,1),filter .6s,transform .6s cubic-bezier(.22,1,.36,1)}.name .ta{font-family:Tiro Tamil,serif;font-size:21px;opacity:0;filter:blur(6px);transform:translateY(6px)}.name:hover .en,.name:focus-visible .en{opacity:0;filter:blur(6px);transform:translateY(-6px)}.name:hover .ta,.name:focus-visible .ta{opacity:1;filter:blur(0);transform:none}.line{position:absolute;left:32px;bottom:calc(var(--peek, 96px) + 28px);max-width:7.4em;font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(32px,min(3.7vw,6.6vh),68px);line-height:1;letter-spacing:-.015em;color:#fff;text-shadow:0 0 48px rgba(90,10,40,.28),0 1px 2px rgba(90,10,40,.18)}.line .w{display:inline-block;opacity:0;transform:translateY(.4em);filter:blur(10px);animation:rise 1.4s cubic-bezier(.22,1,.36,1) forwards}@keyframes rise{to{opacity:1;transform:none;filter:blur(0)}}.line .key{font-style:italic;pointer-events:auto;cursor:pointer;position:relative}.line .key:after{content:"";position:absolute;left:0;right:.12em;bottom:.06em;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.22,1,.36,1)}.line .key.on:after{transform:scaleX(1)}.tag{position:absolute;left:0;top:0;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#2a0a14;font-weight:500;opacity:0;white-space:nowrap;will-change:transform,opacity;pointer-events:auto;cursor:pointer;padding:6px 4px;margin:-6px -4px;background:none;border:0;font-family:inherit}.tag:after{content:" ↗";letter-spacing:0;opacity:0;transition:opacity .3s}.tag:hover:after,.tag:focus-visible:after{opacity:1}.peek{position:absolute;left:0;right:0;top:0;height:var(--peek, 96px);display:flex;align-items:center;justify-content:flex-start;gap:10px;color:#fff3ea;padding:0;text-shadow:0 1px 12px rgba(42,10,20,.45);text-decoration:none;pointer-events:auto;will-change:transform,opacity}.peek .pkw{display:inline-flex;align-items:center;gap:10px;will-change:transform}.peek .pk{font:500 10.5px/1 Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#ffd2a8}.peek .names{font-family:"Instrument Serif",serif;font-size:clamp(15px,min(1.25vw,2.4vh),19px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9}.peek .names i{font-style:normal;opacity:.4;margin:0 .55em}.peek .arrow{font-size:15px;color:#ffb27a;animation:nudge 2.2s cubic-bezier(.65,0,.35,1) infinite}@keyframes nudge{0%,to{transform:translateY(-2px);opacity:.5}50%{transform:translateY(4px);opacity:1}}.peek:hover .names{opacity:1}.cue{position:absolute;right:32px;bottom:44px;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#fff;opacity:.8;mix-blend-mode:difference}.cue span.bar{width:1px;height:44px;background:currentColor;transform-origin:top;animation:drip 2.4s cubic-bezier(.65,0,.35,1) infinite}@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.room{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;opacity:0;color:#24081a}.room.live{pointer-events:auto}.room .back{position:absolute;top:24px;left:28px;font:500 11px/1 Inter,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:inherit;background:none;border:0;cursor:pointer;padding:8px 0}.room .back span{display:inline-block;transition:transform .4s cubic-bezier(.22,1,.36,1)}.room .back:hover span{transform:translate(-6px)}.room .idx{position:absolute;top:32px;right:32px;font:500 11px/1 Inter,sans-serif;letter-spacing:.22em;text-transform:uppercase;opacity:.6}.room h2{position:absolute;left:28px;bottom:28px;font-family:"Instrument Serif",serif;font-style:italic;font-weight:400;font-size:clamp(64px,14vw,220px);line-height:.85;letter-spacing:-.02em}.room h2 .w{display:inline-block}.windows{position:absolute;top:14vh;right:6vw;bottom:30vh;left:34vw}.windows.many{top:9vh;right:4vw;bottom:22vh;left:30vw}.windows.many .win{width:min(clamp(96px,9.5vw,150px),23vh);aspect-ratio:1 / 1.6}.windows.many .win .t{font-size:clamp(15px,1.25vw,19px)}.win .l{display:block;padding:0 14%;font-size:9px;letter-spacing:.14em;line-height:1.5}.win>span{transition:transform .5s cubic-bezier(.22,1,.36,1)}.win:hover>span{transform:translateY(-4px)}.win{position:absolute;width:clamp(110px,13vw,190px);aspect-ratio:1 / 1.7;border-radius:999px;border:1px dashed rgba(36,8,26,.45);display:grid;place-items:center;text-align:center;font:500 10px/1.4 Inter,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#24081a99;background:radial-gradient(closest-side,#ffffff59,#fff0);animation:float 9s ease-in-out infinite;transition:background .5s,border-color .5s;text-decoration:none}.win.filled{border-style:solid;border-color:#24081ab3;color:#24081a}.win:hover{background:radial-gradient(closest-side,#ffffffbf,#fff0)}.win .t{font-family:"Instrument Serif",serif;font-size:22px;letter-spacing:0;text-transform:none;display:block;margin-bottom:6px}.win.art-pill{display:flex;flex-direction:column;overflow:hidden;place-items:stretch;border:1px solid rgba(36,8,26,.18);background:var(--bg, #fff);box-shadow:0 18px 40px -18px #280a3c73,inset 0 0 0 1px #ffffff59;transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .6s}.win.art-pill:hover{background:var(--bg, #fff);box-shadow:0 26px 60px -18px #280a3c99,inset 0 0 0 1px #ffffff80}.win.art-pill .art{flex:1 1 auto;min-height:0;position:relative}.win.art-pill .art svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:transform .8s cubic-bezier(.22,1,.36,1)}.win.art-pill:hover .art svg{transform:scale(1.06)}.win.art-pill .txt{flex:0 0 auto;padding:0 10% 22%;text-align:center;color:var(--fg, #24081a)}.win.art-pill .t{margin-bottom:4px}.win.art-pill .l{padding:0;opacity:.75;font-size:8.5px}.win.art-pill:hover>span{transform:none}@media (prefers-reduced-motion: reduce){.art *{animation:none!important}}.a-hue{animation:hue 6s linear infinite}@keyframes hue{to{filter:hue-rotate(360deg)}}.a-bob{animation:bob 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes bob{0%,to{transform:translateY(0) rotate(-14deg)}50%{transform:translateY(-4px) rotate(-6deg)}}.a-drift{animation:drift 5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes drift{0%,to{transform:translate(0) rotate(var(--r, 0deg))}50%{transform:translate(var(--dx, 1px),var(--dy, -2px)) rotate(var(--r, 0deg))}}.a-tile{animation:tile 4.8s ease-in-out infinite}@keyframes tile{0%,8%{fill:#fffaf0}14%,70%{fill:#ffcf5a}82%,to{fill:#fffaf0}}.a-path{stroke-dasharray:120;stroke-dashoffset:120;animation:trace 4.8s ease-in-out infinite}@keyframes trace{0%,8%{stroke-dashoffset:120}55%,70%{stroke-dashoffset:0}85%,to{stroke-dashoffset:120;opacity:0}}.a-sweep{animation:sweep 6s ease-in-out infinite}@keyframes sweep{0%{transform:translateY(0)}to{transform:translateY(72px)}}.a-sun{animation:sun 6s ease-in-out infinite}@keyframes sun{0%{transform:translate(0)}50%{transform:translate(22px,-8px)}to{transform:translate(44px);opacity:.2}}.a-pulse{animation:pulse 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@media (max-width: 640px){.windows{top:12vh;right:6vw;bottom:34vh;left:6vw}.windows.many{top:9vh;right:5vw;bottom:26vh;left:5vw;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:calc((90vw - 26px)*.775);gap:16px 18px;overflow-y:auto;padding:8px 4px 40px;align-content:start;-webkit-mask:linear-gradient(#000 85%,transparent);mask:linear-gradient(#000 85%,transparent)}.windows.many .win{position:relative;left:auto!important;top:auto!important;width:100%!important;height:100%;aspect-ratio:auto;min-width:0}.windows.many .win .t{font-size:19px}.windows.many .win:nth-child(2n){transform:translateY(36px);animation:none}.windows:not(.many) .win{width:28vw}}.now{position:relative;z-index:1;background:linear-gradient(rgba(42,10,20,0),var(--wall) 30vh);color:#f6dccf;padding:8vh 0 26vh;margin-top:-32vh}.now .kicker{position:relative;text-align:center;font:500 11px/1 Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#ffb27a;margin-bottom:12vh;opacity:.9}.now .kicker span{position:relative;z-index:1;padding:8px 14px}.spine{position:absolute;left:50%;top:calc(8vh + 34px);bottom:18vh;width:1px;transform:translate(-50%);background:#ffb27a1f}.spine .fill{position:absolute;left:0;top:0;width:100%;height:0;background:linear-gradient(#fff2e0,#ffb27a 60%,#ff7a3a);box-shadow:0 0 10px 1px #ff9650a6,0 0 28px 4px #ff6e3c40}.spine .bead{position:absolute;left:50%;width:9px;height:12px;border-radius:50%/60% 60% 40% 40%;transform:translate(-50%,-2px);background:#ffd2a0;box-shadow:0 0 14px 4px #ff8c46b3}.items{position:relative;list-style:none;max-width:1180px;margin:0 auto;padding:0 32px}.item{position:relative;display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:96px;column-gap:96px;min-height:30vh;align-items:start}.item .card{grid-column:1;text-align:right;opacity:.16;filter:blur(5px);transform:translateY(18px);transition:opacity 1s cubic-bezier(.22,1,.36,1),filter 1s,transform 1s cubic-bezier(.22,1,.36,1)}.item.lit .card{opacity:1;filter:none;transform:none}.item .node{position:absolute;left:50%;top:22px;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%) scale(.6);background:#4a1a26;border:1px solid rgba(255,178,122,.35);transition:all .8s cubic-bezier(.22,1,.36,1)}.item.lit .node{background:#ffe1bf;border-color:#ffe1bf;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 16px 4px #ff8c468c}.card .role{font:500 10.5px/1 Inter,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:#ffb27a;margin-bottom:14px}.card h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(40px,5vw,76px);line-height:.95;letter-spacing:-.015em;color:#fff3ea}.card h3 a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat;transition:background-size .6s cubic-bezier(.22,1,.36,1)}.card h3 a:hover{background-size:100% 1px}.card h3 a:after{content:" ↗";font-size:.4em;vertical-align:.9em;opacity:.6}.card p{margin-top:14px;font-size:15.5px;line-height:1.55;color:#e9c2b4;max-width:30ch;display:inline-block}.divider{position:relative;text-align:center;margin:2vh 0 12vh;font:500 11px/1 Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#ffb27a;opacity:.9;list-style:none}.divider span{position:relative;z-index:1;background:var(--wall);padding:8px 14px}.item.right .card{grid-column:2;text-align:left}.card p a{color:#ffd2a0;text-decoration:none;border-bottom:1px solid rgba(255,210,160,.4)}.card p a:hover{border-bottom-color:currentColor}.now .end{position:relative;text-align:center;margin-top:4vh;font-family:"Instrument Serif",serif;font-style:italic;font-size:18px;color:#ffb27a;opacity:.7}@media (max-width: 760px){.spine{left:28px;transform:none}.items{padding:0 24px 0 60px}.item{grid-template-columns:1fr;min-height:0;padding-bottom:12vh}.item .card,.item.right .card{grid-column:1;text-align:left}.divider{text-align:left;padding-left:22px}.item .node{left:-32px}.now .kicker{text-align:left;padding-left:60px}}@media (max-width: 640px){.name{top:20px;left:20px}.line{left:20px;bottom:calc(var(--peek, 96px) + 22px)}.cue{right:20px;bottom:36px}.tag{font-size:9.5px;letter-spacing:.18em}}.line .key{border:0;padding:0;background:none;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit}:focus-visible{outline:2px solid currentColor;outline-offset:6px}.win{cursor:pointer}.win .l{letter-spacing:.04em;text-transform:none}.contact{position:relative;z-index:1;background:var(--wall);padding:40px 8vw 64px;display:flex;justify-content:space-between;gap:24px;font:26px "Instrument Serif",serif}.contact a{color:#ffd2a0;text-underline-offset:6px}dialog{margin:auto;width:min(760px,90vw);max-height:85dvh;overflow:auto;padding:40px;border:1px solid #ffffff50;border-radius:6px;background:#fff8f0;color:#2a0a14;box-shadow:0 30px 100px #2a0a1440}dialog[open]{display:grid;grid-template-columns:1fr 1.3fr;gap:32px;align-items:center}dialog::backdrop{background:#2a0a1477;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.project-close{position:absolute;top:12px;right:18px;border:0;background:none;font-size:28px;color:inherit;cursor:pointer}#projectArt{border-radius:150px;overflow:hidden}#projectArt svg{display:block;width:100%;max-height:310px}.project-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:20px}.project-copy h2{font:44px/1 "Instrument Serif",serif;margin-bottom:20px}#projectDescription{font-size:15px;line-height:1.65}#projectLink{display:inline-block;color:inherit;font-size:12px;margin-top:24px;text-underline-offset:5px}#projectLink[hidden]{display:none}.no-webgl #field{background:radial-gradient(ellipse at 65% 40%,#ff786d,#ba9de8 30%,#aedee4 60%,#6379b5)}.no-webgl .room{background:radial-gradient(ellipse,#fff0e4,#c3b2ea)}@media (max-width: 640px){.windows,.windows.many{top:11vh;right:5vw;bottom:21vh;left:5vw;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:24px 18px;overflow-y:auto;padding:16px 4px 50px;align-content:start}.windows .win,.windows.many .win{position:relative;left:auto!important;top:auto!important;width:100%!important;height:auto;aspect-ratio:1 / 1.7;animation:none}.windows .win .t{font-size:20px}.room h2{font-size:clamp(56px,14vw,90px)}.contact{flex-direction:column}dialog[open]{grid-template-columns:1fr;padding:32px;gap:24px}#projectArt{width:120px;margin:0 auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.line .w,.item .card{opacity:1;filter:none;transform:none}}.hero{z-index:2;pointer-events:none}html{overflow-anchor:none}.line .key,.tag{cursor:default}.line .key:after,.tag:after{display:none}
