/* Home page styles. Edit here. */
@font-face { font-family: "Unbounded"; src: url("/assets/fonts/unbounded-latin-wght-normal.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }
@font-face { font-family: "Rock Salt"; src: url("/assets/fonts/rock-salt-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("/assets/fonts/instrument-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("/assets/fonts/instrument-sans-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("/assets/fonts/instrument-sans-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
:root {
    
    --ink: #121315;        
    --surface: #22252A;    
    --text: #E5E7EB;       
    --muted: #9CA3AF;      
    --signal: #FF5500;     
    --signal-hover: #FF7A33;
    --echo: #8649BA;       
    --echo-bright: #B07DE6; 
    
    
    --page: #121315;
    --page-soft: #1A1C20;
    --night: #140E1E;      
    --night-mid: #1B1328;
    --night-lift: #2A1D3D; 
    --display: "Unbounded", "Instrument Sans", system-ui, sans-serif;
    --body: "Instrument Sans", system-ui, sans-serif;
    --gutter: clamp(1.25rem, 8vw, 10rem);
    color-scheme: dark;
  }
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--page); color: var(--text); font-family: var(--body); font-size: 1.125rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: min(1200px, 100% - 2 * var(--gutter)); margin-inline: auto; }
.opener {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    grid-template-columns: minmax(0, 1fr);   
    grid-template-rows: 1fr;
    overflow: hidden;
    isolation: isolate;
    touch-action: pan-y;          
    
    -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent 100%); mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
  }
.field { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; }
.bg { position: absolute; inset: 0; z-index: -3; overflow: hidden; pointer-events: none;
        background: radial-gradient(ellipse 70% 62% at 50% 48%, var(--night-lift) 0%, var(--night-mid) 45%, var(--night) 85%); }
.photo { --photo-opacity: 0.14; --photo-dark: 0.1; position: absolute; inset: 0; opacity: var(--photo-opacity); }
.photo canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom, rgb(var(--night-rgb) / 0.38) 0%, rgb(var(--night-rgb) / 0) 22%, rgb(var(--night-rgb) / 0.34) 34% 64%, rgb(var(--night-rgb) / 0) 82%, rgb(var(--night-rgb) / 0.3) 100%), radial-gradient(ellipse 85% 80% at 50% 48%, rgb(var(--night-rgb) / 0) 0%, rgb(var(--night-rgb) / 0.4) 100%), rgb(var(--veil-tint-rgb) / var(--photo-dark)); }
.glow { position: absolute; inset: 0; background: radial-gradient(ellipse 42% 34% at 50% 48%, rgb(var(--glow-hi-rgb) / 0.5), rgb(var(--glow-hi-rgb) / 0) 72%); opacity: 0.3; }
.glow.is-beat { animation: glow-beat 2.4s cubic-bezier(0.2, 0.7, 0.2, 1); }
.glow.is-hit { animation: glow-hit 1.6s cubic-bezier(0.2, 0.7, 0.2, 1); }
@keyframes glow-beat { 0% { opacity: 0.3; } 12% { opacity: 0.75; } 100% { opacity: 0.3; } }
@keyframes glow-hit { 0% { opacity: 0.3; } 10% { opacity: 1; } 100% { opacity: 0.3; } }
.opener::after {
    content: "";
    position: absolute; inset: -50%; z-index: -1;
    pointer-events: none;
    opacity: 0.08;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    animation: grain 1s steps(1) infinite;
    will-change: transform;
  }
.opener.is-off::after { animation-play-state: paused; }
@keyframes grain {
    0%   { transform: translate(0, 0); }
    10%  { transform: translate(-6%, -9%); }
    20%  { transform: translate(8%, 4%); }
    30%  { transform: translate(-3%, 11%); }
    40%  { transform: translate(10%, -7%); }
    50%  { transform: translate(-9%, 2%); }
    60%  { transform: translate(4%, 9%); }
    70%  { transform: translate(-11%, -3%); }
    80%  { transform: translate(7%, -10%); }
    90%  { transform: translate(-2%, 6%); }
  }
.descriptor { margin: calc(-1 * clamp(0.5rem, 1.6vw, 1.4rem)) 0 0; font-family: var(--display); font-weight: 400; font-size: clamp(0.72rem, 1.15vw, 0.95rem); line-height: 1.7; letter-spacing: 0.03em; color: #F1ECE3; text-wrap: balance; text-shadow: 0 1px 12px rgb(var(--night-rgb) / 0.7); }
@media (min-width: 700px) {
.descriptor { white-space: nowrap; }
}
.skip-link { position: absolute; left: 1rem; top: 1rem; z-index: 60; padding: 0.7rem 1rem; background: var(--signal); color: var(--ink); font-weight: 600; border-radius: 2px; transform: translateY(-220%); }
.skip-link:focus { transform: none; }
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 30; transition: transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1), background-color 240ms ease; }
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; background: rgb(18 19 21 / 0.94); transition: opacity 240ms ease; }
.site-header.is-solid::before { opacity: 1; }
.site-header.is-hidden { transform: translateY(-110%); }
.site-header:focus-within, .site-header.is-menu-open { transform: none; }
.site-header .wrap.bar { width: calc(100% - 2 * var(--gutter)); }
.bar { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: clamp(0.9rem, 2.2vw, 1.6rem); }
.logo { display: inline-flex; align-items: center; min-height: 44px; color: var(--text); text-decoration: none; }
.bar { display: grid; grid-template-columns: 1fr auto 1fr; }
.logo { grid-column: 2; display: grid; place-items: center; min-width: 8rem; }
.logo img { grid-area: 1 / 1; display: block; width: auto; transition: opacity 320ms ease, transform 360ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.logo-text { height: clamp(32px, 3.5vw, 46px); }
.logo-sphere { height: clamp(40px, 3.6vw, 48px); opacity: 0; transform: scale(0.6); }
.site-header.is-solid .logo-text { opacity: 0; transform: scale(0.9); }
.site-header.is-solid .logo-sphere { opacity: 1; transform: none; }
.button--menu { grid-column: 3; justify-self: end; }
@media (max-width: 599.98px) {
.logo { min-width: 0; }
.logo-text { height: 22px; }
.logo-sphere { height: 38px; }
.bar { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
.site-header .button--menu { min-width: 0; padding: 0.45rem 0.8rem 0.45rem 0.95rem; gap: 0.45rem; font-size: 0.9rem; }
}
@media (prefers-reduced-motion: reduce) {
.logo img { transition: none; }
}
button.button { font-family: inherit; cursor: pointer; }
.button--menu { min-width: 6.5rem; }
.menu-panel {
    position: absolute; top: calc(100% + 0.25rem); right: 0;
    width: min(24rem, 100%);
    padding: 0.25rem 1.5rem 0.9rem;
    background: rgb(22 23 26 / 0.72);
    -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3);
    border: 1px solid rgb(229 231 235 / 0.16); border-radius: 24px;
    transform-origin: top right;
    visibility: hidden; opacity: 0; transform: translateY(-8px) scale(0.98);
    transition: opacity 200ms ease, transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0s linear 260ms;
  }
.menu-panel.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity 200ms ease, transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1); }
@media (max-width: 599.98px) {
.menu-panel { width: 100%; }
}
.menu-list { list-style: none; margin: 0; padding: 0; }
.menu-list li + li { border-top: 1px solid rgb(229 231 235 / 0.1); }
.menu-list a {
    display: block; padding: 0.85rem 0; color: var(--text); text-decoration: none;
    font-family: var(--display); font-weight: 300; letter-spacing: -0.03em; line-height: 1.2;
    font-size: clamp(1.3rem, 1.9vw, 1.55rem);
    transition: opacity 220ms ease;
  }
.menu-list:hover a { opacity: 0.4; }
.menu-list a:hover, .menu-list a:focus-visible { opacity: 1; }
.menu-list a[aria-current="page"] span { text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 3px; text-underline-offset: 0.22em; }
.menu-foot { display: flex; flex-wrap: wrap; gap: 0 1.5rem; padding-top: 0.35rem; border-top: 1px solid rgb(229 231 235 / 0.1); font-size: 0.9375rem; }
.menu-foot a { color: var(--muted); display: inline-flex; align-items: center; min-height: 44px; }
.menu-foot a:hover { color: var(--text); }
.opener-content { align-self: center; display: grid; justify-items: center; gap: clamp(2rem, 4vw, 3.5rem); padding-block: 0 3rem; text-align: center; }
.slogan {
    margin: 0;
    font-family: var(--display);
    font-weight: 300;
    font-size: 5vw;                  
    line-height: 1.12;
    white-space: nowrap;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    cursor: default;
    user-select: none;
    -webkit-user-select: none;
  }
.slogan .word { white-space: nowrap; display: inline-block; }
.slogan .ch { display: inline-block; text-align: center; }
.button {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.7rem;
    min-height: 44px; padding: 0.55rem 1.3rem 0.55rem 1.5rem;
    background: rgb(229 231 235 / 0.1); color: var(--text);
    border: 1px solid rgb(229 231 235 / 0.28); border-radius: 999px;
    font-size: 1rem; font-weight: 600; letter-spacing: 0; text-transform: lowercase; text-decoration: none;
    transition: transform 240ms cubic-bezier(0.2, 0.7, 0.2, 1), background-color 240ms ease, border-color 240ms ease, color 240ms ease;
  }
.button::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--signal); transition: background-color 240ms ease; }
.button:hover, .button:focus-visible { transform: scale(1.07); background: var(--signal); border-color: var(--signal); color: var(--ink); }
.button:hover::after, .button:focus-visible::after { background: var(--ink); }
.next { min-height: 70vh; display: grid; place-items: center; color: var(--muted); font-size: 0.9375rem; }
@media (prefers-reduced-motion: reduce) {
.button, .button::after { transition: none; }
.button:hover, .button:focus-visible { transform: none; }
.glow.is-beat, .glow.is-hit { animation: none; }
.site-header, .site-header::before, .menu-panel, .menu-panel.is-open, .menu-list a { transition: none; }
.opener::after { animation: none; }
}
html { scroll-behavior: smooth; }
.section { padding-block: clamp(6rem, 14vw, 12rem) 0; }
.section-title { margin: 0 0 clamp(2rem, 5vw, 4rem); font-family: var(--display); font-weight: 700; font-size: clamp(2.5rem, 6vw, 5rem); line-height: 1.05; letter-spacing: -0.035em; text-transform: lowercase; text-wrap: balance; }
.section-title--caps { text-transform: uppercase; letter-spacing: -0.02em; font-size: clamp(1.35rem, 3.2vw, 2.85rem); }
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
}
.console-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.console-list > li { display: contents; }
.channel { position: relative; display: flex; flex-direction: column; gap: 1rem; min-height: 22rem; padding: 1rem 1rem 1.15rem; text-align: left; font: inherit; color: var(--text); background: rgb(229 231 235 / 0.05); border: 1px solid rgb(229 231 235 / 0.1); border-radius: 24px; cursor: pointer; touch-action: manipulation; transition: background-color 260ms ease, border-color 260ms ease, opacity 260ms ease; }
.channel:hover { background: rgb(229 231 235 / 0.08); }
.console-list.has-solo .channel[aria-pressed="false"] { opacity: 0.5; }
.console-list.has-solo .channel[aria-pressed="false"]:hover { opacity: 0.85; }
.channel[aria-pressed="true"] { background: rgb(229 231 235 / 0.1); border-color: var(--signal); }
.ch-solo { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.5rem; min-height: 32px; padding: 0.15rem 0.8rem 0.15rem 0.9rem; border: 1px solid rgb(229 231 235 / 0.28); border-radius: 999px; background: rgb(229 231 235 / 0.08); font-size: 0.875rem; font-weight: 600; transition: background-color 240ms ease, border-color 240ms ease, color 240ms ease; }
.ch-solo::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--signal); transition: background-color 240ms ease; }
.channel[aria-pressed="true"] .ch-solo { background: var(--signal); border-color: var(--signal); color: var(--ink); }
.channel[aria-pressed="true"] .ch-solo::after { background: var(--ink); }
.ch-body { flex: 1 1 auto; display: grid; grid-template-columns: 22px 1fr; gap: 14px; min-height: 170px; }
.ch-vu { display: block; width: 22px; height: 100%; }
.ch-fader { position: relative; justify-self: center; width: 46px; height: 100%; }
.ch-fader::before { content: ""; position: absolute; left: 50%; top: 8px; bottom: 8px; width: 4px; margin-left: -2px; border-radius: 2px; background: rgb(0 0 0 / 0.45); }
.ch-fader::after { content: ""; position: absolute; top: 8px; bottom: 8px; left: 0; right: 0; background: repeating-linear-gradient(to bottom, rgb(229 231 235 / 0.2) 0 1px, transparent 1px 20px) left center / 7px 100% no-repeat, repeating-linear-gradient(to bottom, rgb(229 231 235 / 0.2) 0 1px, transparent 1px 20px) right center / 7px 100% no-repeat; }
.ch-cap { position: absolute; z-index: 1; left: 50%; width: 38px; height: 22px; margin-left: -19px; bottom: calc(var(--level, 0.6) * (100% - 22px)); border-radius: 7px; background: #c9ccd4; border: 1px solid rgb(0 0 0 / 0.25); transition: bottom 480ms cubic-bezier(0.2, 0.7, 0.2, 1), background-color 260ms ease; }
.ch-cap::after { content: ""; position: absolute; left: 6px; right: 6px; top: 50%; height: 2px; margin-top: -1px; border-radius: 2px; background: #5a5d66; }
.console-list.has-solo .channel[aria-pressed="false"] { --level: 0.28 !important; }
.channel[aria-pressed="true"] { --level: 0.92 !important; }
.channel[aria-pressed="true"] .ch-cap { background: var(--signal); }
.channel[aria-pressed="true"] .ch-cap::after { background: var(--ink); }
.ch-name { font-family: var(--display); font-weight: 300; font-size: 0.95rem; line-height: 1.25; letter-spacing: -0.02em; overflow-wrap: normal; hyphens: none; }
.channel-detail { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: 5fr 6fr; gap: 1rem 2rem; align-items: baseline; margin-top: 12px; padding: clamp(1.4rem, 3vw, 2.25rem); background: rgb(229 231 235 / 0.06); border: 1px solid rgb(229 231 235 / 0.1); border-radius: 28px; animation: detail-in 300ms cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.channel-detail[hidden] { display: none; }
@keyframes detail-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.detail-title { margin: 0; font-family: var(--display); font-weight: 300; font-size: clamp(1.5rem, 2.8vw, 2.4rem); line-height: 1.15; letter-spacing: -0.03em; }
.detail-text { margin: 0; max-width: 60ch; color: var(--muted); }
.detail-spec { color: var(--text); font-weight: 500; }
.section-sub { margin: calc(-1 * clamp(1rem, 3.2vw, 2.8rem)) 0 clamp(2rem, 4vw, 3rem); color: var(--muted); font-size: 1.0625rem; letter-spacing: 0.01em; }
@media (max-width: 899.98px) {
.console-list { grid-template-columns: 1fr; gap: 10px; }
.channel { flex-direction: row; align-items: center; min-height: 0; gap: 1rem; padding: 0.85rem 1.1rem; }
.ch-name { order: 1; flex: 1 1 auto; font-size: 1.05rem; }
.ch-body { order: 2; flex: 0 0 auto; grid-template-columns: 1fr; width: 84px; height: 22px; min-height: 0; }
.ch-fader { display: none; }
.ch-vu { width: 100%; height: 22px; }
.ch-solo { order: 3; align-self: center; }
.channel-detail { grid-column: auto; grid-row: auto; grid-template-columns: 1fr; margin-top: 0; }
}
@media (max-width: 599.98px) {
.ch-solo { width: 32px; height: 32px; padding: 0; justify-content: center; gap: 0; font-size: 0; color: transparent; }
.ch-solo::after { width: 8px; height: 8px; }
.ch-body { width: 64px; }
.ch-name { overflow-wrap: normal; }
}
@media (prefers-reduced-motion: reduce) {
.channel, .ch-solo, .ch-solo::after, .ch-cap { transition: none; }
.channel-detail { animation: none; }
}
.ch-solo { gap: 0.55rem; min-height: 34px; padding: 0.2rem 0.85rem 0.2rem 0.7rem; border-radius: 9px; border: 1px solid rgb(0 0 0 / 0.6); background: linear-gradient(to bottom, #50535d 0%, #3a3c45 55%, #30323a 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.28), inset 0 -2px 0 rgb(0 0 0 / 0.3), 0 3px 0 rgb(0 0 0 / 0.5), 0 4px 8px rgb(0 0 0 / 0.35); color: #d9dce4; text-shadow: 0 1px 0 rgb(0 0 0 / 0.55); transition: transform 120ms ease, box-shadow 120ms ease, background 200ms ease; }
.ch-solo::after { content: none; }
.ch-solo::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #4a3420; box-shadow: inset 0 1px 2px rgb(0 0 0 / 0.7), 0 0 0 1px rgb(0 0 0 / 0.55), 0 1px 0 rgb(255 255 255 / 0.15); transition: background-color 160ms ease, box-shadow 160ms ease; }
.channel:hover .ch-solo { background: linear-gradient(to bottom, #5a5d68 0%, #42444e 55%, #383a43 100%); }
.channel[aria-pressed="true"] .ch-solo { transform: translateY(3px); border-color: rgb(0 0 0 / 0.6); background: linear-gradient(to bottom, #2c2e35, #383a43); box-shadow: inset 0 2px 5px rgb(0 0 0 / 0.55), inset 0 -1px 0 rgb(255 255 255 / 0.1), 0 0 0 rgb(0 0 0 / 0); color: #fff; }
.channel[aria-pressed="true"] .ch-solo::before { background: #ffb347; box-shadow: 0 0 6px 2px rgb(255 140 40 / 0.75), 0 0 14px 4px rgb(255 100 20 / 0.45), inset 0 1px 1px rgb(255 255 255 / 0.6), 0 0 0 1px rgb(80 30 0 / 0.6); }
.ch-cap { background: linear-gradient(to bottom, #e6e8ed 0%, #bcbfc8 45%, #9b9ea8 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.75), 0 2px 3px rgb(0 0 0 / 0.5); }
.channel[aria-pressed="true"] .ch-cap { background: linear-gradient(to bottom, #ffa266 0%, #ff5500 55%, #d94400 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.55), 0 2px 3px rgb(0 0 0 / 0.5), 0 0 12px rgb(255 85 0 / 0.35); }
.ch-vu { filter: none; }
@media (max-width: 599.98px) {
.ch-solo { flex: 0 0 auto; width: 38px; min-width: 38px; height: 34px; padding: 0; justify-content: center; gap: 0; font-size: 0; }
.ch-body { flex: 0 0 auto; }
}
.page-bg { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: var(--page); }
.page-bg i { position: absolute; display: block; width: 78vmax; height: 78vmax; border-radius: 50%; will-change: transform; }
.page-bg i:nth-child(1) { top: -24vmax; left: -18vmax; background: radial-gradient(circle, rgb(40 44 52 / 0.95), rgb(40 44 52 / 0) 66%); animation: page-a 72s ease-in-out infinite alternate; }
.page-bg i:nth-child(2) { bottom: -34vmax; right: -22vmax; background: radial-gradient(circle, rgb(var(--glow-rgb) / 0.07), rgb(var(--glow-rgb) / 0) 66%); animation: page-b 96s ease-in-out infinite alternate; }
.page-bg i:nth-child(3) { top: 30vh; left: 38vw; width: 56vmax; height: 56vmax; background: radial-gradient(circle, rgb(255 85 0 / 0.035), rgb(255 85 0 / 0) 64%); animation: page-c 118s ease-in-out infinite alternate; }
@keyframes page-a { to { transform: translate(24vw, 20vh) scale(1.12); } }
@keyframes page-b { to { transform: translate(-26vw, -16vh) scale(1.1); } }
@keyframes page-c { to { transform: translate(-30vw, 14vh) scale(1.18); } }
.page-bg::after { content: ""; position: absolute; inset: 0; opacity: 0.05; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
@media (prefers-reduced-motion: reduce) {
.page-bg i:nth-child(1), .page-bg i:nth-child(2), .page-bg i:nth-child(3) { animation: none; }
}
#services .wrap { position: relative; display: flow-root; }
#services .wrap > *:not(.ring-scene) { position: relative; z-index: 1; }
#services-title { text-transform: none; color: var(--echo-bright); text-shadow: 0 0 14px rgb(var(--glow-bright-rgb) / 0.6), 0 0 38px rgb(var(--glow-rgb) / 0.55), 0 0 80px rgb(var(--glow-rgb) / 0.35), 0 3px 22px rgb(18 19 21 / 0.85); margin-top: max(0px, calc(var(--ring-h, 0px) * 0.5 - 2.6rem)); }
#services .ring-fallback { margin-top: 0; }
.ring-scene { display: none; }
.js .ring-fallback { display: none; }
.js .ring-scene { display: block; position: absolute; z-index: 0; top: var(--ring-shift, 0px); left: 50%; width: 100vw; margin-left: -50vw; height: clamp(280px, 34vw, 440px); overflow: hidden; }
.ring-scene canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; -webkit-mask-image: linear-gradient(to bottom, transparent 10%, #000 34%, #000 58%, transparent 90%); mask-image: linear-gradient(to bottom, transparent 10%, #000 34%, #000 58%, transparent 90%); }
#services { margin-top: clamp(-18rem, -22vh, -6rem); padding-top: 0; position: relative; z-index: 1; }
.ch-name { display: inline-block; align-self: flex-start; max-width: 100%; padding: 0.5rem 0.7rem 0.55rem; font-family: "Rock Salt", "Segoe Print", cursive; font-weight: 400; font-size: 0.68rem; line-height: 1.45; overflow-wrap: normal; hyphens: none; letter-spacing: 0; color: #25221c; text-shadow: 0 0 1px rgb(37 34 28 / 0.4); background: linear-gradient(to bottom, #e6dec6 0%, #d8cfb2 100%); clip-path: polygon(1% 4%, 12% 0, 31% 3%, 58% 0, 83% 3%, 100% 0, 98% 36%, 100% 68%, 97% 100%, 70% 96%, 40% 100%, 13% 97%, 0 100%, 2% 62%, 0 30%); transform: rotate(var(--tilt, -1deg)); }
li:nth-child(1) .ch-name { --tilt: -1.6deg; }
li:nth-child(2) .ch-name { --tilt: 1.2deg; }
li:nth-child(3) .ch-name { --tilt: -0.6deg; }
li:nth-child(4) .ch-name { --tilt: 1.8deg; }
li:nth-child(5) .ch-name { --tilt: -1.1deg; }
li:nth-child(6) .ch-name { --tilt: 0.7deg; }
.channel { background-color: rgb(27 29 33 / 0.8); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); background-blend-mode: soft-light; }
.ch-scale { position: absolute; top: 8px; bottom: 8px; right: -2px; width: 18px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; pointer-events: none; }
.ch-scale i { font-style: normal; font-family: var(--body); font-size: 8px; line-height: 1; color: rgb(229 231 235 / 0.42); }
.ch-cap { background: linear-gradient(to bottom, #cfd1d8 0%, #b0b3bc 50%, #9a9da7 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.4), 0 2px 3px rgb(0 0 0 / 0.55); }
.channel[aria-pressed="true"] .ch-cap { background: linear-gradient(to bottom, #ff9b5e 0%, #f25a12 55%, #cc4a0c 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.35), 0 2px 3px rgb(0 0 0 / 0.55), 0 0 8px rgb(255 85 0 / 0.25); }
.ch-solo { background: linear-gradient(to bottom, #474a54 0%, #363840 60%, #2d2f36 100%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.16), inset 0 -2px 0 rgb(0 0 0 / 0.3), 0 3px 0 rgb(0 0 0 / 0.5), 0 4px 6px rgb(0 0 0 / 0.3); }
.channel[aria-pressed="true"] .ch-solo::before { background: #f5a24a; box-shadow: 0 0 4px 1px rgb(245 140 50 / 0.55), inset 0 1px 1px rgb(255 255 255 / 0.4), 0 0 0 1px rgb(80 30 0 / 0.6); }
.channel-detail { grid-template-columns: 5fr 6fr; }
.detail-title { font-family: var(--display); font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.6rem); line-height: 1.12; letter-spacing: -0.02em; color: var(--signal); text-shadow: 0 2px 0 rgb(0 0 0 / 0.5), 0 0 16px rgb(255 85 0 / 0.55), 0 0 44px rgb(255 85 0 / 0.3); }
.detail-body { display: grid; gap: 1rem; align-content: start; }
.detail-spec { margin: 0; max-width: 60ch; color: var(--text); font-weight: 600; line-height: 1.55; }
.detail-spec .sl { color: var(--echo-bright); font-weight: 400; margin-inline: 0.15em; }
.detail-text { margin: 0; max-width: 60ch; color: var(--muted); padding-top: 0.9rem; border-top: 1px solid rgb(229 231 235 / 0.12); }
@media (max-width: 899.98px) {
.channel-detail { grid-template-columns: 1fr; }
}
.ch-name { font-size: 0.78rem; padding: 0.5rem 0.5rem 0.55rem 0.6rem; -webkit-text-stroke: 0.55px #25221c; paint-order: stroke fill; text-shadow: 0.4px 0 0 #25221c, -0.4px 0 0 #25221c; }
.channel { border-radius: 8px; }
.channel-detail { border-radius: 10px; }
.ch-solo { position: relative; align-self: flex-start; display: inline-flex; align-items: center; justify-content: center; gap: 0; min-width: 56px; min-height: 32px; padding: 0 0.7rem; border-radius: 3px; border: 1px solid #0e0f12; background: #4a4d56; background-image: linear-gradient(to bottom, rgb(255 255 255 / 0.08), rgb(255 255 255 / 0) 40%); box-shadow: 0 0 0 3px #17181c, 0 3px 0 3px #0c0d10; color: #d4d7de; font-family: var(--body); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; text-shadow: none; margin: 3px 3px 6px; transition: transform 90ms ease, box-shadow 90ms ease, background-color 140ms ease, color 140ms ease; }
.ch-solo::before, .ch-solo::after { content: none; }
.channel:hover .ch-solo { background-color: #565a64; }
.channel[aria-pressed="true"] .ch-solo { transform: translateY(2px); background: #f2a22c; background-image: linear-gradient(to bottom, rgb(255 255 255 / 0.28), rgb(255 255 255 / 0) 45%); border-color: #7a4a08; color: #2a1700; box-shadow: 0 0 0 3px #17181c, 0 1px 0 3px #0c0d10, 0 0 10px 1px rgb(242 162 44 / 0.35); }
@media (max-width: 599.98px) {
.ch-solo { flex: 0 0 auto; width: 52px; min-width: 52px; height: 30px; min-height: 30px; padding: 0; font-size: 0.62rem; letter-spacing: 0.1em; color: #d4d7de; }
.channel[aria-pressed="true"] .ch-solo { color: #2a1700; }
}
@media (max-width: 899.98px) {
.channel { border-radius: 8px; }
}
@media (prefers-reduced-motion: reduce) {
.ch-solo { transition: none; }
}
:root {
    --night-rgb: 20 14 30; --deep-rgb: 8 5 14; --glow-rgb: 134 73 186; --glow-hi-rgb: 150 90 208; --glow-bright-rgb: 176 125 230; --veil-tint-rgb: 60 36 90;
    --ring-accent-rgb: 176 125 230; --ring-kick-rgb: 255 115 45; --ring-grey-rgb: 156 163 175;
    --accent: #D96548; --accent-hover: #E27A60;
    --page-bg: #F1ECE3; --ink-block: #29232D; --card-bg: #68506F; --track-bg: #91B7D8; --spec-color: #91B7D8;
    --title-color: #68506F; --sub-color: #29232D; --roll-text-c: #29232D; --roll-accent-c: #D96548;
  }
.theme-print main { --text: #F1ECE3; --muted: #CFC6BB; --signal: var(--accent); --signal-hover: var(--accent-hover); --echo: var(--card-bg); --echo-bright: var(--spec-color); --ink: #29232D; }
.theme-print body { background: var(--page-bg); }
.theme-print .page-bg { display: none; }
.theme-print .menu-panel { background: #29232D; -webkit-backdrop-filter: none; backdrop-filter: none; border-color: rgb(207 198 187 / 0.25); border-radius: 6px; }
.theme-print .opener { clip-path: none; -webkit-mask-image: linear-gradient(var(--fade-angle, 176.6deg), #000 var(--fade-start, 62%), transparent var(--fade-end, 91%)); mask-image: linear-gradient(var(--fade-angle, 176.6deg), #000 var(--fade-start, 62%), transparent var(--fade-end, 91%)); }
.theme-print #services { margin-top: calc(-0.3 * var(--ring-h, 0px)); }
.theme-print #services { --roll-text: var(--roll-text-c); --roll-accent: var(--roll-accent-c); padding-bottom: clamp(5rem, 9vw, 8rem); }
.theme-print #services-title { color: var(--title-color); text-shadow: none; }
.theme-print #services-title, .theme-print #services .section-sub { text-align: center; }
.theme-print #services-title { text-shadow: 0 0 22px var(--page-bg), 0 0 8px var(--page-bg); }
.theme-print #services .section-sub { color: var(--sub-color); font-weight: 600; text-shadow: 0 0 14px var(--page-bg), 0 0 6px var(--page-bg), 0 0 2px var(--page-bg); }
.theme-print .next { background: var(--ink-block); margin: 0; min-height: 30vh; }
.theme-print .channel { background-color: var(--ink-block); background-image: none; border-color: var(--ink-block); }
.theme-print .channel[aria-pressed="true"] { border-color: var(--accent); }
.theme-print .channel[aria-pressed="true"] .ch-solo { box-shadow: 0 0 0 3px #17181c, 0 1px 0 3px #0c0d10; }
.theme-print .channel-detail { background: var(--card-bg); border-color: transparent; border-radius: 6px; }
.theme-print .detail-title { color: #F1ECE3; text-shadow: none; }
.theme-print .detail-spec { color: #C4DCF0; }
.theme-print .detail-spec .sl { color: var(--spec-color); }
.theme-print .detail-text { color: #E3CDB0; border-top-color: rgb(241 236 227 / 0.3); }
.console-list { --grain-k: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.6' numOctaves='2' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.85 -0.28'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E"); --mottle-l2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.016' numOctaves='3' seed='21' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.3 -0.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); --mottle-d2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.014 0.05' numOctaves='3' seed='37' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.4 -0.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E"); --tape-fibre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9 0.12' numOctaves='3' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.12 0 0 0 0.9 -0.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.7' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.8 -0.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E"); --grain-d: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 -0.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); --mottle-l: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.03' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.3 -0.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); --mottle-d: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.02 0.045' numOctaves='3' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.4 -0.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E"); --screw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3CradialGradient id='g' cx='38%25' cy='32%25' r='75%25'%3E%3Cstop offset='0' stop-color='%239a9da3'/%3E%3Cstop offset='.55' stop-color='%234b4d52'/%3E%3Cstop offset='1' stop-color='%2317181a'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='10' cy='10' r='9' fill='url(%23g)' stroke='%23050506' stroke-width='1.2'/%3E%3Cpath d='M5.2 5.2L14.8 14.8M14.8 5.2L5.2 14.8' stroke='%23121315' stroke-width='2.3' stroke-linecap='round'/%3E%3Cpath d='M4.2 6.6A7.5 7.5 0 0 1 12 3' stroke='%23fff' stroke-opacity='.22' stroke-width='1' fill='none'/%3E%3C/svg%3E"); --noise-f: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 -0.22'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.9 -0.28'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --noise-d: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.9 -0.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --dots: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='18.89' cy='81.11' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='8.15' cy='63.60' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='6.54' cy='43.12' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='14.40' cy='24.14' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='30.02' cy='10.80' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='50.00' cy='6.00' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='69.98' cy='10.80' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='85.60' cy='24.14' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='93.46' cy='43.12' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='91.85' cy='63.60' r='3.6' fill='%23ececec'/%3E%3Ccircle cx='81.11' cy='81.11' r='3.6' fill='%23ececec'/%3E%3C/svg%3E"); gap: 2px; padding: 10px 10px 12px; background: #121314; border: 1px solid #060607; border-radius: 3px; }
.theme-print .console-list .channel { isolation: isolate; gap: 0.6rem; padding: 0.6rem 0.6rem 0.8rem; background-color: var(--tone, #2a2b2d); background-image: none; border: 1px solid #131415; border-radius: 2px; box-shadow: inset 1px 0 0 rgb(255 255 255 / 0.08), inset -1px 0 0 rgb(0 0 0 / 0.4); }
.theme-print .console-list .channel:hover, .theme-print .console-list .channel[aria-pressed="true"] { background-color: #313235; }
.theme-print .console-list .channel[aria-pressed="true"] { border-color: #131415; box-shadow: inset 0 3px 0 var(--accent), inset 1px 0 0 rgb(255 255 255 / 0.08), inset -1px 0 0 rgb(0 0 0 / 0.4); }
.console-list > li { --ml: var(--mottle-l); --md: var(--mottle-d); }
.console-list > li:nth-child(even) { --ml: var(--mottle-l2); --md: var(--mottle-d2); }
.console-list > li:nth-child(1) { --ox: -60px; --oy: 40px; --zs: 400px; --lx: 18%; --tone: #2a2b2d; --hi: 0.06; --lo: 0.2; }
.console-list > li:nth-child(2) { --ox: 120px; --oy: -80px; --zs: 470px; --lx: 72%; --tone: #2c2d30; --hi: 0.04; --lo: 0.26; }
.console-list > li:nth-child(3) { --ox: 30px; --oy: 150px; --zs: 360px; --lx: 46%; --tone: #28292b; --hi: 0.07; --lo: 0.18; }
.console-list > li:nth-child(4) { --ox: -140px; --oy: -30px; --zs: 520px; --lx: 84%; --tone: #2d2e2f; --hi: 0.05; --lo: 0.24; }
.console-list > li:nth-child(5) { --ox: 200px; --oy: 90px; --zs: 430px; --lx: 30%; --tone: #2a2b2f; --hi: 0.08; --lo: 0.21; }
.console-list > li:nth-child(6) { --ox: -20px; --oy: -170px; --zs: 490px; --lx: 62%; --tone: #292b2c; --hi: 0.04; --lo: 0.25; }
.console-list .ch-btns { display: flex; gap: 6px; }
.console-list .ch-cut, .console-list .channel .ch-solo { position: relative; flex: 1 1 0; display: flex; align-items: flex-end; justify-content: center; align-self: auto; width: auto; min-width: 0; height: 32px; min-height: 32px; padding: 0 0 5px; transform: none; border: 1px solid #0d0e0f; border-bottom-width: 3px; border-radius: 1px; background: #cfd0d2; color: #1a1b1c; box-shadow: none; font: 700 8px/1 var(--body); letter-spacing: 0.1em; text-transform: uppercase; }
.console-list .ch-cut::before, .console-list .channel .ch-solo::before { content: ""; position: absolute; top: 5px; left: 50%; width: 14px; height: 4px; margin-left: -7px; border-radius: 1px; box-shadow: none; }
.console-list .ch-cut::before { background: #7a2a25; }
.console-list .channel .ch-solo::before { background: #7a6424; }
.console-list .channel .ch-solo::after { content: none; }
.console-list .channel:hover .ch-solo { background: #d8d9db; }
.console-list .channel[aria-pressed="true"] .ch-solo { transform: none; background: #cfd0d2; color: #1a1b1c; border-color: #0d0e0f; box-shadow: none; }
.console-list .channel[aria-pressed="true"] .ch-solo::before { background: #ffb347; box-shadow: 0 0 6px rgb(255 179 71 / 0.8); }
.led { display: block; width: 4px; height: 4px; border-radius: 50%; background: var(--c, #555); opacity: 0.85; }
.ch-deco { --f: 1; display: grid; }
.col { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; }
.hd { display: flex; align-items: center; gap: 3px; height: calc(18px * var(--f)); font: 700 6.5px/1 var(--body); letter-spacing: 0.1em; text-transform: uppercase; color: #ececec; white-space: nowrap; }
.hd .ln { flex: 1 1 0; width: 0; height: 9px; min-width: 6px; overflow: visible; }
.hd .ln path { fill: none; stroke: #ececec; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.console-list .ch-vu { border-radius: 2px; border: 1px solid #050506; background: #141414; }
.console-list .ch-fader::before { top: 22px; bottom: 22px; width: 6px; margin-left: -3px; border-radius: 1px; background: #0b0c0d; }
.console-list .ch-scale { top: 22px; bottom: 22px; }
.console-list .ch-scale i { color: #1c1d1f; font-weight: 700; font-size: 9px; }
.console-list .ch-fader::after { opacity: 0.5; filter: invert(1) brightness(0.2); }
.console-list .ch-cap { width: 30px; height: 46px; margin-left: -15px; bottom: calc(var(--level, 0.6) * (100% - 46px)); border: 1px solid #5c5646; border-radius: 2px; background: repeating-linear-gradient(to bottom, rgb(0 0 0 / 0.16) 0 1px, transparent 1px 5px), linear-gradient(to right, #d9d0b4, #f0e9d3 45%, #d4caab); }
.console-list .ch-cap::after { left: 0; right: 0; height: 3px; margin-top: -1.5px; border-radius: 0; background: #3a372f; }
.console-list .channel[aria-pressed="true"] .ch-cap { background: repeating-linear-gradient(to bottom, rgb(0 0 0 / 0.16) 0 1px, transparent 1px 5px), linear-gradient(to right, #d9d0b4, #f0e9d3 45%, #d4caab); }
.console-list .channel[aria-pressed="true"] .ch-cap::after { background: var(--accent); }
.console-list .channel[aria-pressed="true"] { --level: 0.92 !important; }
.console-list.has-solo .channel[aria-pressed="false"], .console-list.has-solo .channel[aria-pressed="false"]:hover { opacity: 1; }
.console-list.has-solo .channel[aria-pressed="false"] > :not(.ch-tape) { opacity: 0.45; }
.console-list.has-solo .channel[aria-pressed="false"]::before { opacity: 0.45; }
.ch-tape { container-type: inline-size; display: block; filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.5)); transform: rotate(var(--tl, 0deg)); }
li:nth-child(1) .ch-tape { --tl: -0.7deg; }
li:nth-child(2) .ch-tape { --tl: 0.6deg; }
li:nth-child(3) .ch-tape { --tl: -0.4deg; }
li:nth-child(4) .ch-tape { --tl: 0.8deg; }
li:nth-child(5) .ch-tape { --tl: -0.9deg; }
li:nth-child(6) .ch-tape { --tl: 0.5deg; }
.console-list .ch-name { box-sizing: border-box; display: flex; align-items: center; justify-content: center; align-self: auto; width: 100%; min-height: 3.9rem; padding: 0.55rem 0.7rem; text-align: center; font-size: clamp(0.5rem, calc((100cqw - 1.6rem) / 10.4), 0.95rem); line-height: 1.35; transform: none;
    color: #0e0c08; -webkit-text-stroke: 0.4px #0e0c08; text-shadow: 0.5px 0 0 #0e0c08, 0 0.5px 1px rgb(14 12 8 / 0.35);
    background: var(--tape-fibre), repeating-linear-gradient(90deg, rgb(0 0 0 / 0.035) 0 1px, transparent 1px 3px), linear-gradient(to bottom, rgb(255 255 255 / 0.42), rgb(255 255 255 / 0) 35%, rgb(120 90 30 / 0.16)), #e6dcb8;
    clip-path: polygon(0 6%, 1.2% 0, 2.4% 9%, 3.6% 1%, 5% 8%, 6% 0, 100% 0, 100% 8%, 98.8% 18%, 100% 30%, 98.6% 44%, 99.6% 58%, 98.8% 72%, 100% 86%, 99% 100%, 6% 100%, 5% 91%, 3.6% 100%, 2.4% 92%, 1.2% 100%, 0 92%, 1% 78%, 0 64%, 1.2% 50%, 0 36%, 1% 22%); }
@media (min-width: 900px) {
.console-list { --cw: min(100vw - 32px, 1560px); width: var(--cw); margin-left: calc((100% - var(--cw)) / 2); }
.theme-print .console-list .channel { min-height: 0; padding: 1.2rem 0.6rem 1rem; }
.console-list .channel::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--screw) top 5px left 5px / 11px 11px no-repeat, var(--screw) top 5px right 5px / 11px 11px no-repeat, var(--screw) bottom 4px left 5px / 11px 11px no-repeat, var(--screw) bottom 4px right 5px / 11px 11px no-repeat; }
.console-list .ch-body { flex: none; height: 170px; min-height: 0; }
.console-list .ch-tape { order: -1; }
.console-list .ch-name { height: 5rem; }
}
@media (max-width: 899.98px) {
.console-list { padding: 6px; }
.ch-deco, .console-list .ch-cut { display: none; }
.console-list .ch-btns { order: 3; }
.console-list .ch-tape { order: 1; flex: 1 1 auto; min-width: 0; }
.console-list .ch-name { min-height: 0; font-size: 0.8rem; text-align: left; justify-content: flex-start; }
.console-list .channel .ch-solo { flex: 0 0 auto; width: 58px; }
}
@media (min-width: 1500px) {
.ch-deco { --f: 1.3; }
}
@media (min-width: 900px) and (max-width: 1199.98px) {
.ch-deco { --f: 1.5; }
}
.theme-print #services .section-sub { display: flex; width: fit-content; max-width: 100%; align-items: center; gap: 0.8rem; margin: 0 auto clamp(1.8rem, 3.4vw, 2.8rem); padding: 0.8rem 1.7rem 0.85rem 1.4rem; border-radius: 999px; background: var(--accent); color: #1d1820; font-size: clamp(1.3rem, 2.3vw, 2rem); font-weight: 800; letter-spacing: -0.01em; line-height: 1.15; text-shadow: none; animation: pill-ring 2.2s ease-out infinite; }
#services .section-sub::before { content: ""; flex: none; width: 0.6em; height: 0.6em; border-radius: 50%; background: #1d1820; animation: con-pulse 1.4s ease-in-out infinite; }
#services.has-opened .section-sub, #services.has-opened .section-sub::before { animation: none; }
@keyframes pill-ring { 0% { box-shadow: 0 0 0 0 rgb(217 101 72 / 0.6); } 70%, 100% { box-shadow: 0 0 0 20px rgb(217 101 72 / 0); } }
@keyframes con-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.35; transform: scale(0.7); } }
@media (prefers-reduced-motion: reduce) {
.theme-print #services .section-sub, #services .section-sub::before { animation: none; }
}
@media (min-width: 900px) {
.console-list > li:nth-child(1) .channel { grid-column: 1; grid-row: 1; }
.console-list > li:nth-child(2) .channel { grid-column: 2; grid-row: 1; }
.console-list > li:nth-child(3) .channel { grid-column: 3; grid-row: 1; }
.console-list > li:nth-child(4) .channel { grid-column: 4; grid-row: 1; }
.console-list > li:nth-child(5) .channel { grid-column: 5; grid-row: 1; }
.console-list > li:nth-child(6) .channel { grid-column: 6; grid-row: 1; }
.console-list > li:nth-child(1) .channel-detail { grid-column: 2 / span 2; }
.console-list > li:nth-child(2) .channel-detail { grid-column: 3 / span 2; }
.console-list > li:nth-child(3) .channel-detail { grid-column: 4 / span 2; }
.console-list > li:nth-child(4) .channel-detail { grid-column: 5 / span 2; }
.console-list > li:nth-child(5) .channel-detail { grid-column: 3 / span 2; --from: 14px; }
.console-list > li:nth-child(6) .channel-detail { grid-column: 4 / span 2; --from: 14px; }
.theme-print .console-list .channel-detail { grid-row: 1; z-index: 4; margin-top: 0; grid-template-columns: 1fr; align-content: center; gap: clamp(1.6rem, 2.6vw, 2.6rem); padding: clamp(1.4rem, 2.2vw, 2.2rem); cursor: pointer; }
.theme-print .console-list .channel-detail { container-type: inline-size; }
.theme-print .console-list .detail-title { font-size: clamp(1.6rem, 10.2cqw, 3.5rem); line-height: 1.08; overflow-wrap: normal; hyphens: none; }
.theme-print .console-list .detail-spec { font-size: clamp(1rem, 5.6cqw, 1.5rem); font-weight: 600; color: #C4DCF0; }
.theme-print .console-list .detail-text { font-size: clamp(1rem, 5cqw, 1.3rem); font-weight: 400; color: #E3CDB0; }
.theme-print .console-list .detail-title { color: #fff; }
.theme-print .console-list .detail-spec .sl { color: #FFB39E; }
}
.channel-detail:not([hidden]) { animation: card-in 620ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.channel-detail.is-closing { animation: card-out 260ms cubic-bezier(0.5, 0, 0.75, 0) both; pointer-events: none; }
.channel-detail:not([hidden]):not(.is-closing) .detail-title, .channel-detail:not([hidden]):not(.is-closing) .detail-spec, .channel-detail:not([hidden]):not(.is-closing) .detail-text { animation: card-rise 600ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.channel-detail .detail-title { animation-delay: 170ms; }
.channel-detail .detail-spec { animation-delay: 270ms; }
.channel-detail .detail-text { animation-delay: 370ms; }
@keyframes card-in { from { clip-path: var(--ci, inset(0 0 100% 0)); opacity: 0; transform: translateX(var(--from, -16px)); } 50% { opacity: 1; } to { clip-path: inset(0); opacity: 1; transform: none; } }
@keyframes card-out { to { opacity: 0; transform: translateX(calc(var(--from, -16px) * 0.5)); } }
@keyframes card-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (min-width: 900px) {
.console-list > li:nth-child(-n+4) .channel-detail { --ci: inset(0 100% 0 0); }
.console-list > li:nth-child(n+5) .channel-detail { --ci: inset(0 0 0 100%); }
}
@media (max-width: 899.98px) {
.channel-detail { --from: 0px; }
}
@media (prefers-reduced-motion: reduce) {
.channel-detail, .channel-detail * { animation: none !important; }
}
@keyframes side-in { from { opacity: 0; transform: translateX(var(--from, -14px)); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
.theme-print .console-list .channel-detail { animation: none; }
}
.console-list .channel[aria-pressed="true"] .ch-solo { background: var(--grain-k), linear-gradient(to bottom, rgb(255 255 255 / 0.5), rgb(255 255 255 / 0) 25%, rgb(0 0 0 / 0.2)), radial-gradient(ellipse 90% 70% at 30% 20%, #f4f4f5, #dcdde0 55%, #c2c3c7); }
.console-list .led { box-shadow: 0 0 0 1px rgb(0 0 0 / 0.7), inset 0 1px 1px rgb(255 255 255 / 0.35); }
.slogan .br-b { display: none; }
.opener--b .glow { display: none; }
.opener--b .opener-content { align-self: end; justify-items: start; text-align: left; padding-bottom: clamp(5.5rem, 15vh, 9rem); }
.opener--b { background: radial-gradient(ellipse 62% 78% at 34% 56%, var(--night-lift) 0%, var(--night-mid) 46%, var(--night) 88%); }
.opener--b .bg { background: none; z-index: -1; }
.opener--b .slogan { line-height: 1.02; letter-spacing: -0.03em; }
.opener--b .slogan .br-b { display: inline; }
.opener--b .photo { inset: 9vh 0 11vh auto; width: min(46vw, 640px); clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
.opener--b .photo::after { background: rgb(var(--night-rgb) / 0.12); }
.opener--b .descriptor { width: 100%; padding-top: 1rem; border-top: 1px solid rgb(241 236 227 / 0.3); text-align: left; }
@media (max-width: 700px) {
.opener--b .bg { z-index: -3; }
.opener--b .photo { inset: 0; width: auto; clip-path: none; }
.opener--b .photo::after { background: rgb(var(--night-rgb) / 0.6); }
}
.theme-print .opener.opener--v3 { -webkit-mask-image: none; mask-image: none; clip-path: polygon(0 0, 100% 0, 100% calc(100% - clamp(36px, 6vw, 96px)), 0 100%); }
.opener--v3 .opener-content { width: calc((100% - 2 * var(--gutter)) * 0.56); margin-left: var(--gutter); margin-right: auto; padding-bottom: clamp(7rem, 17vh, 10rem); }
.opener--v3 .photo { --photo-opacity: 0.9; inset: 0; width: auto; clip-path: none; -webkit-mask-image: linear-gradient(90deg, transparent 8%, #000 56%); mask-image: linear-gradient(90deg, transparent 8%, #000 56%); }
.opener--v3 .photo::after { background: radial-gradient(ellipse 54% 58% at 63% 44%, rgb(var(--deep-rgb) / 0) 0%, rgb(var(--deep-rgb) / 0.5) 58%, rgb(var(--deep-rgb) / 0.97) 100%), linear-gradient(to bottom, rgb(var(--night-rgb) / 0.55) 0%, rgb(var(--night-rgb) / 0) 22%, rgb(var(--night-rgb) / 0) 70%, rgb(var(--night-rgb) / 0.6) 100%), rgb(var(--night-rgb) / 0.14); }
@media (max-width: 700px) {
.opener--v3 .opener-content { width: calc(100% - 2 * var(--gutter)); margin-inline: auto; }
.opener--v3 .photo { inset: 0; width: auto; clip-path: none; -webkit-mask-image: none; mask-image: none; }
.opener--v3 .photo::after { background: rgb(var(--night-rgb) / 0.6); }
}
.opener--v3 .descriptor { white-space: nowrap; max-width: none; font-size: clamp(0.72rem, 1.25vw, 1.02rem); font-weight: 500; letter-spacing: 0.02em; color: #F6F1E8; text-shadow: 0 0 16px rgb(var(--deep-rgb) / 0.95), 0 0 6px rgb(var(--deep-rgb) / 0.9), 0 1px 2px rgb(0 0 0 / 0.8); }
@media (max-width: 700px) {
.opener--v3 .descriptor { white-space: normal; max-width: 36ch; font-size: 0.8rem; }
}
.opener--v3 .photo::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.opener--v3 .photo::after { z-index: 2; }
.opener--v3 .photo canvas { filter: saturate(0.86); }
.opener--v3 .photo::before { background: linear-gradient(100deg, rgb(40 108 122 / 0.36) 4%, rgb(112 130 138 / 0.26) 56%, rgb(232 128 62 / 0.4) 100%); mix-blend-mode: overlay; }
.opener--v3 .photo .photo-lift { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: rgb(92 88 98 / 0.26); mix-blend-mode: screen; }
.opener--v3 .pblur { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.opener--v3 .pblur--1 { -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); -webkit-mask-image: radial-gradient(ellipse 46% 56% at 66% 40%, transparent 38%, #000 88%); mask-image: radial-gradient(ellipse 46% 56% at 66% 40%, transparent 38%, #000 88%); }
.opener--v3 .pblur--2 { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); -webkit-mask-image: radial-gradient(ellipse 38% 46% at 70% 36%, transparent 50%, #000 100%), linear-gradient(to top, #000 0%, transparent 48%); mask-image: radial-gradient(ellipse 38% 46% at 70% 36%, transparent 50%, #000 100%), linear-gradient(to top, #000 0%, transparent 48%); }
.opener--v3 .pblur--3 { -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); background: rgb(var(--deep-rgb) / 0.32); -webkit-mask-image: linear-gradient(82deg, #000 0%, transparent 40%), linear-gradient(to top, #000 0%, transparent 30%); mask-image: linear-gradient(82deg, #000 0%, transparent 40%), linear-gradient(to top, #000 0%, transparent 30%); }
@media (max-width: 700px) {
.opener--v3 .pblur--1 { -webkit-mask-image: radial-gradient(ellipse 60% 40% at 50% 30%, transparent 40%, #000 95%); mask-image: radial-gradient(ellipse 60% 40% at 50% 30%, transparent 40%, #000 95%); }
.opener--v3 .pblur--2 { -webkit-mask-image: linear-gradient(to top, #000 0%, transparent 62%); mask-image: linear-gradient(to top, #000 0%, transparent 62%); }
.opener--v3 .pblur--3 { -webkit-mask-image: linear-gradient(to top, #000 0%, transparent 42%); mask-image: linear-gradient(to top, #000 0%, transparent 42%); }
}
@media (prefers-reduced-motion: reduce) {
.opener--v3 .pblur--3 { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
}
.opener--v3 .photo canvas { filter: grayscale(1) contrast(1.75) brightness(0.74); }
.opener--v3 .photo::before { background: none; }
.opener--v3 .photo .photo-lift { background: rgb(92 88 98 / 0.04); }
.opener--v3 .pglow { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0.3; mix-blend-mode: screen; -webkit-backdrop-filter: blur(16px) brightness(1.6) contrast(1.4); backdrop-filter: blur(16px) brightness(1.6) contrast(1.4); }
.opener--v3 .lens { position: absolute; inset: 0; clip-path: inset(100%); }
.opener--v3 .lens canvas { display: block; width: 100%; height: 100%; filter: brightness(0.9); }
.opener--v3 .field { z-index: 0; }
.opener--v3 { z-index: 2; }
.opener--v3 .opener-content { position: relative; z-index: 1; }
.hud { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.hud-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.hud-lines line { stroke: rgb(var(--ring-grey-rgb) / 0.4); stroke-width: 1; }
.hud-label { position: absolute; padding: 0.35rem 0.65rem; border: 1px solid rgb(var(--ring-grey-rgb) / 0.55); border-radius: 3px; background: rgb(var(--deep-rgb) / 0.82); font-family: var(--body); font-size: 0.9375rem; font-weight: 500; line-height: 1.2; white-space: nowrap; color: rgb(var(--ring-grey-rgb)); }
.lens-frame { position: absolute; left: 0; top: 0; border: 1px solid rgb(var(--ring-grey-rgb) / 0.95); will-change: transform; opacity: 0; }
.lens-frame.is-on { opacity: 1; }
.lens-frame.is-live { border-color: var(--accent); }
.lens-coords { position: absolute; left: -1px; bottom: calc(100% + 6px); font-family: var(--body); font-size: 0.9375rem; font-weight: 600; white-space: nowrap; color: rgb(var(--ring-grey-rgb)); text-shadow: 0 0 10px rgb(var(--deep-rgb) / 0.9); }
.lens-tech { position: absolute; left: 7px; bottom: 5px; display: flex; gap: 0.9em; font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 0.625rem; line-height: 1; letter-spacing: 0.02em; color: #fff; opacity: 0.4; mix-blend-mode: difference; white-space: nowrap; }
.lens-frame.is-live .lens-coords { color: var(--accent); }
@media (max-width: 900px) {
.hud-label, .hud-lines { display: none; }
}
.opener--v3 .bg, .opener--v3 .hud { transform: translate3d(0, calc(var(--p, 0) * 72px), 0); will-change: transform; }
@media (prefers-reduced-motion: reduce) {
.opener--v3 .bg, .opener--v3 .hud { transform: none; will-change: auto; }
}
.about { --cut: clamp(36px, 6vw, 96px); --about-ink: #29232D; --about-soft: #4B4352; --about-plum: #68506F; --about-coral: #C2502F; scroll-margin-top: 2rem; background: linear-gradient(to bottom right, transparent calc(50% - 0.5px), #D9D0C3 50%) 0 0 / 100% var(--cut) no-repeat, linear-gradient(#D9D0C3, #D9D0C3) 0 calc(var(--cut) - 1px) / 100% calc(100% - var(--cut) + 1px) no-repeat; padding-top: calc(var(--cut) + clamp(4rem, 8vw, 8rem)); padding-bottom: clamp(5rem, 9vw, 8rem); }
.about-grid { display: grid; grid-template-columns: minmax(0, 4.6fr) minmax(0, 6.4fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; width: min(1360px, 100% - 2 * var(--gutter)); }
.about-photo { position: relative; margin: 0; }
.about-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; background: #cbc1b2; }
.about-tape { position: absolute; top: -0.9rem; left: -1.6rem; width: clamp(5.5rem, 12vw, 8.5rem); height: clamp(1.8rem, 3.6vw, 2.6rem); transform: rotate(-35deg); background: repeating-linear-gradient(90deg, rgb(0 0 0 / 0.04) 0 1px, transparent 1px 3px), linear-gradient(to bottom, rgb(255 255 255 / 0.4), rgb(255 255 255 / 0) 40%, rgb(120 90 30 / 0.16)), rgb(226 212 170 / 0.92); filter: drop-shadow(0 2px 2px rgb(0 0 0 / 0.28)); clip-path: polygon(0 8%, 3% 0, 5% 12%, 8% 2%, 100% 0, 98% 20%, 100% 42%, 97% 62%, 100% 82%, 99% 100%, 8% 100%, 5% 90%, 3% 100%, 0 88%, 2% 70%, 0 48%, 3% 28%); }
.about-text { padding-top: clamp(0rem, 5vw, 6rem); color: var(--about-ink); }
.about-text .section-title { color: var(--about-ink); margin-bottom: clamp(1.4rem, 3vw, 2.4rem); }
.about-quote { margin: 0 0 clamp(2rem, 4vw, 3rem); max-width: 24ch; font-family: var(--display); font-weight: 700; font-size: clamp(1.6rem, 3vw, 2.8rem); line-height: 1.18; letter-spacing: -0.025em; color: var(--about-plum); text-wrap: balance; }
.about-text p:not(.about-quote) { margin: 0 0 1.15em; max-width: 68ch; font-size: clamp(1.15rem, 1.42vw, 1.4rem); line-height: 1.65; color: var(--about-soft); }
.about-text strong { color: var(--about-ink); font-weight: 600; }
.about-avail { color: var(--about-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--about-coral); text-decoration-thickness: 2px; text-underline-offset: 0.2em; }
.about-speaker3d { position: absolute; right: 4%; bottom: -34%; z-index: 3; width: 300px; height: 380px; opacity: 0; transition: opacity 500ms ease; pointer-events: none; }
.about-speaker3d.is-ready { opacity: 1; }
@media (max-width: 900px) {
.about-speaker3d { width: 190px; height: 240px; right: -4%; bottom: -30%; }
}
@media (max-width: 900px) {
.about-grid { grid-template-columns: 1fr; }
.about-photo { width: min(70%, 22rem); margin-left: 1.2rem; margin-bottom: 5.5rem; }
.about-text { padding-top: 0; }
}
.work { padding-bottom: clamp(5rem, 9vw, 8rem); scroll-margin-top: 2rem; }
.work-wrap { width: min(1360px, 100% - 2 * var(--gutter)); margin-inline: auto; }
.work .section-title { color: #29232D; }
.work-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2vw, 1.75rem); }
.work-tile { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 0.7rem; min-height: clamp(22rem, 38vw, 34rem); padding: clamp(1.5rem, 3vw, 2.75rem); border-radius: 18px; text-decoration: none; isolation: isolate; transition: background-color 280ms ease, transform 280ms cubic-bezier(0.2, 0.7, 0.2, 1); }
.work-tile--portfolio { background: #68506F; color: #F1ECE3; }
.work-tile--released { background: #91B7D8; color: #29232D; }
.work-tile--portfolio:hover { background: #765B7E; }
.work-tile--released:hover { background: #9FC3E2; }
.work-tile:hover { transform: translateY(-4px); }
.work-name { font-family: var(--display); font-weight: 800; font-size: clamp(2rem, 4.6vw, 4.2rem); line-height: 1.02; letter-spacing: -0.03em; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.16em; text-decoration-color: transparent; transition: text-decoration-color 200ms ease; }
.work-tile:hover .work-name, .work-tile:focus-visible .work-name { text-decoration-color: currentColor; }
.work-tile:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.work-line { max-width: 28ch; font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.5; opacity: 0.9; }
.work-credit { margin: 1.4rem 0 0; font-size: 0.875rem; line-height: 1.5; color: #4B4352; max-width: 80ch; }
.work-credit a { color: #29232D; text-underline-offset: 0.18em; }
.work-3d { position: absolute; right: -2%; top: -14%; z-index: 1; width: min(62%, 24rem); aspect-ratio: 1 / 1.05; opacity: 0; transition: opacity 500ms ease; pointer-events: none; }
.work-3d.is-ready { opacity: 1; }
@media (max-width: 800px) {
.work-grid { grid-template-columns: 1fr; }
.work-tile { min-height: 19rem; margin-top: 2.2rem; }
.work-3d { width: 52%; top: -12%; }
}
@media (prefers-reduced-motion: reduce) {
.work-tile { transition: none; }
.work-tile:hover { transform: none; }
}
.contact { --cut: clamp(36px, 6vw, 96px); background: linear-gradient(to bottom right, transparent calc(50% - 0.5px), #29232D 50%) 0 0 / 100% var(--cut) no-repeat, linear-gradient(#29232D, #29232D) 0 calc(var(--cut) - 1px) / 100% calc(100% - var(--cut) + 1px) no-repeat; color: #F1ECE3; padding-top: calc(var(--cut) + clamp(4rem, 8vw, 8rem)); padding-bottom: clamp(5rem, 9vw, 8rem); scroll-margin-top: 2rem; }
.contact { position: relative; }
.contact-rings { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.contact-wrap { position: relative; z-index: 1; width: min(1360px, 100% - 2 * var(--gutter)); margin-inline: auto; }
.contact .section-title { color: #F1ECE3; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.contact-form { display: grid; gap: 1.5rem; max-width: 40rem; }
.cf-field { display: grid; gap: 0.5rem; }
.cf-field label { font-weight: 600; font-size: 1.0625rem; }
.cf-field input, .cf-field select, .cf-field textarea { width: 100%; box-sizing: border-box; min-height: 52px; padding: 0.85rem 1rem; font: inherit; font-size: 1.0625rem; color: #F1ECE3; background: #342D3A; border: 1px solid rgb(241 236 227 / 0.38); border-radius: 12px; }
.cf-field textarea { min-height: 9.5rem; resize: vertical; line-height: 1.55; }
.cf-field input:focus-visible, .cf-field select:focus-visible, .cf-field textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-color: transparent; }
.cf-select { position: relative; }
.cf-select select { appearance: none; -webkit-appearance: none; padding-right: 3rem; }
.cf-select::after { content: ""; position: absolute; right: 1.2rem; top: 50%; width: 0.55rem; height: 0.55rem; border-right: 2px solid #F1ECE3; border-bottom: 2px solid #F1ECE3; transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.cf-select select:invalid { color: rgb(241 236 227 / 0.72); }
.cf-select option { color: #29232D; background: #F1ECE3; }
.cf-field [aria-invalid="true"] { border-color: #FF8A7A; }
.cf-err { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0; color: #FF9E8F; font-size: 0.9375rem; line-height: 1.4; }
.cf-err[hidden] { display: none; }
.cf-err::before { content: "!"; flex: none; display: inline-grid; place-items: center; width: 1.15rem; height: 1.15rem; margin-top: 0.1rem; border-radius: 50%; background: #FF9E8F; color: #29232D; font-size: 0.8rem; font-weight: 800; }
.cf-opt { margin-left: 0.4rem; font-weight: 400; font-size: 0.9375rem; color: rgb(241 236 227 / 0.72); }
.cf-help { margin: -0.15rem 0 0.1rem; font-size: 0.9375rem; line-height: 1.45; color: rgb(241 236 227 / 0.78); }
.cf-privacy { margin: 0; font-size: 0.9375rem; color: rgb(241 236 227 / 0.78); }
.cf-privacy a, .cf-back { color: #FFB39E; text-underline-offset: 0.18em; }
.cf-done { max-width: 40rem; padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: 18px; background: #342D3A; border: 1px solid rgb(241 236 227 / 0.2); outline: 2px solid rgb(255 179 158 / 0.5); outline-offset: 3px; }
.cf-done[hidden], .contact-form[hidden] { display: none; }
.contact-form, .cf-done { grid-column: 1; grid-row: 1; }
.contact-side { grid-column: 2; grid-row: 1; }
@media (max-width: 900px) {
.contact-side { grid-column: 1; grid-row: 2; }
}
.cf-done h3 { margin: 0 0 0.6rem; font-family: var(--display); font-weight: 800; font-size: clamp(1.8rem, 3.4vw, 2.8rem); letter-spacing: -0.03em; color: #FFB39E; }
.cf-done p { margin: 0 0 1.2rem; font-size: 1.125rem; line-height: 1.55; }
.cf-field { position: relative; }
.cf-field label { font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.02em; color: rgb(241 236 227 / 0.86); }
.cf-field input, .cf-field select, .cf-field textarea { border-radius: 6px; border-color: rgb(241 236 227 / 0.28); background-image: linear-gradient(rgb(255 255 255 / 0.035), rgb(0 0 0 / 0.12)); box-shadow: inset 0 2px 4px rgb(0 0 0 / 0.35), 0 1px 0 rgb(255 255 255 / 0.06); }
.cf-field::after { content: ""; position: absolute; left: 0.9rem; right: 0.9rem; bottom: 0; height: 2px; border-radius: 2px; background: var(--accent); opacity: 0; transform: scaleX(0.4); transition: opacity 180ms ease, transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1); pointer-events: none; }
.cf-field:focus-within::after { opacity: 1; transform: scaleX(1); }
.cf-field:has(.cf-err:not([hidden]))::after { display: none; }
.cf-field input:focus-visible, .cf-field select:focus-visible, .cf-field textarea:focus-visible { outline: 2px solid rgb(217 101 72 / 0.55); outline-offset: 2px; }
.contact-grid { position: relative; }
@media (min-width: 901px) {
.contact-side { position: sticky; top: 7rem; }
}
.cf-sign { font-family: "Rock Salt", "Segoe Print", cursive; font-size: 1.35rem; color: #F1ECE3; transform: rotate(-3deg); transform-origin: left; margin: 0 0 1.4rem; }
.contact { overflow: clip; }
.cf-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cf-send { justify-self: start; margin-top: 0.5rem; }
.cf-send[disabled] { opacity: 0.7; cursor: progress; }
.cf-status { margin: 0; min-height: 0; font-weight: 600; color: #FFB39E; }
.cf-status:empty { display: none; }
.contact-side { display: grid; gap: 0; align-content: start; padding-top: 0.2rem; max-width: 30rem; }
.cs-block { padding-block: 1.6rem; border-top: 1px solid rgb(241 236 227 / 0.22); }
.cs-block:first-child { padding-top: 0.2rem; border-top: 0; }
.cs-status { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.9rem; font-family: var(--display); font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.01em; color: #FFB39E; }
.cs-dot { width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0 rgb(217 101 72 / 0.55); animation: cs-breathe 2.8s ease-in-out infinite; }
@keyframes cs-breathe { 0%, 100% { box-shadow: 0 0 0 0 rgb(217 101 72 / 0.5); } 55% { box-shadow: 0 0 0 0.55rem rgb(217 101 72 / 0); } }
.cs-avail { margin: 0; font-size: clamp(1.25rem, 1.8vw, 1.6rem); line-height: 1.4; font-weight: 500; color: #F1ECE3; text-wrap: balance; }
.cs-h { margin: 0 0 0.7rem; font-family: var(--display); font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.01em; color: rgb(241 236 227 / 0.72); }
.cs-links { list-style: none; margin: 0; padding: 0; display: grid; }
.cs-links li + li { border-top: 1px solid rgb(241 236 227 / 0.14); }
.cs-links a { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.95rem 0; color: #F1ECE3; text-decoration: none; transition: color 200ms ease, padding 200ms ease; }
.cs-l { font-family: var(--display); font-weight: 700; font-size: clamp(1.15rem, 1.5vw, 1.4rem); letter-spacing: -0.02em; }
.cs-h2 { font-size: 1rem; color: rgb(241 236 227 / 0.72); }
.cs-links a:hover, .cs-links a:focus-visible { color: #FFB39E; padding-left: 0.5rem; }
.cs-links a:hover .cs-h2, .cs-links a:focus-visible .cs-h2 { color: #FFB39E; }
.cs-links a:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.cs-note { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: rgb(241 236 227 / 0.82); }
@media (prefers-reduced-motion: reduce) {
.cs-dot { animation: none; }
.cs-links a { transition: none; }
}
@media (max-width: 900px) {
.contact-grid { grid-template-columns: 1fr; }
.contact-side { order: 2; }
}
.site-footer { margin-top: -1px; background: #1D1822; color: #F1ECE3; padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(2.5rem, 5vw, 3.5rem); }
.foot-wrap { width: min(1360px, 100% - 2 * var(--gutter)); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2.5rem; flex-wrap: wrap; padding-top: 0; }
.foot-logo { display: inline-flex; align-items: center; min-height: 44px; }
.foot-logo img { display: block; height: clamp(46px, 5vw, 60px); width: auto; }
.foot-copy { margin: 0; font-size: 0.9375rem; color: rgb(241 236 227 / 0.78); }
.foot-nav { display: flex; gap: 0.4rem 1.6rem; flex-wrap: wrap; }
.foot-nav a { display: inline-flex; align-items: center; min-height: 44px; color: #F1ECE3; font-size: 1rem; text-underline-offset: 0.2em; text-decoration-color: rgb(241 236 227 / 0.5); }
.foot-nav a:hover { color: #FFB39E; text-decoration-color: currentColor; }
.foot-logo:focus-visible, .foot-nav a:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
@media (max-width: 700px) {
.foot-wrap { flex-direction: column; align-items: flex-start; }
}
.stack .opener, .stack #services, .stack #about, .stack #listen, .stack #contact { position: sticky; top: var(--stick-top, 0px); }
.stack .opener { z-index: 1; }
.stack #services { z-index: 2; margin-top: 0; }
.stack #about { z-index: 3; }
.stack #listen { z-index: 4; }
.stack #contact { z-index: 5; }
.stack .site-footer { position: relative; z-index: 6; margin-top: 0; }
.stack-veil { --cutv: var(--cut, 0px); }
.stack #services, .stack #listen { --cut: clamp(36px, 6vw, 96px); background: linear-gradient(to bottom right, transparent calc(50% - 0.5px), var(--page-bg, #F1ECE3) 50%) 0 0 / 100% var(--cut) no-repeat, linear-gradient(var(--page-bg, #F1ECE3), var(--page-bg, #F1ECE3)) 0 calc(var(--cut) - 1px) / 100% calc(100% - var(--cut) + 1px) no-repeat; }
.stack #services { padding-top: calc(var(--cut) + clamp(1rem, 3vw, 2.5rem)); }
.stack #listen { padding-top: calc(var(--cut) + clamp(4rem, 8vw, 8rem)); }
.stack #services-title { margin-top: clamp(2.5rem, 7vw, 6rem); }
.stack-veil { position: absolute; inset: 0; z-index: 40; background: linear-gradient(to bottom right, transparent calc(50% - 0.5px), #120d18 50%) 0 0 / 100% var(--cutv, 0px) no-repeat, linear-gradient(#120d18, #120d18) 0 calc(var(--cutv, 0px) - 1px) / 100% calc(100% - var(--cutv, 0px) + 1px) no-repeat; opacity: 0; pointer-events: none; }
.hdr-label { justify-self: start; font-family: var(--display); font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.01em; color: #F1ECE3; opacity: 1; transition: opacity 160ms ease; white-space: nowrap; }
.hdr-label.is-out { opacity: 0; }
@media (max-width: 700px) {
.hdr-label { display: none; }
}
html { scroll-padding-top: 6rem; }
a, button, select, input, textarea, summary { touch-action: manipulation; -webkit-tap-highlight-color: rgb(217 101 72 / 0.25); }

.menu-foot { gap: 0.4rem; }
.menu-foot a { width: 44px; justify-content: center; color: #F1ECE3; transition: color 180ms ease; }
.menu-foot .ico { width: 26px; height: 26px; fill: currentColor; display: block; }
.menu-foot a:hover, .menu-foot a:focus-visible { color: #FFB39E; }
@media (prefers-reduced-motion: reduce) { .menu-foot a { transition: none; } }

.menu-foot a + a .ico { width: 20px; height: 20px; }   /* the LinkedIn file fills its whole box; the Instagram one has margins, so this evens them out */

/* touch and scrolling polish: no double-tap delay, a deliberate tap highlight, and menus/dialogs that do not scroll the page behind them */
a, button, input, select, textarea, summary, [role="button"] { touch-action: manipulation; -webkit-tap-highlight-color: rgb(255 155 122 / 0.18); }
.menu-panel { overscroll-behavior: contain; }
