html{scroll-behavior:smooth}
body{margin:0;background:oklch(0.16 0.015 40);font-family:Manrope,system-ui,sans-serif;color:oklch(0.95 0.015 80)}
a{color:oklch(0.78 0.14 70);text-decoration:none}a:hover{color:oklch(0.86 0.12 70)}
button,input,textarea{font-family:inherit}
input::placeholder,textarea::placeholder{color:oklch(0.62 0.02 60)}
[hidden]{display:none !important}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Hero: text + logo (logo.webp has a transparent background). */
.hero{padding:72px 0 56px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px 48px;align-items:start}
.hero-text{display:flex;flex-direction:column;gap:28px;min-width:0}
/* logo.webp is trimmed to its visible bounds, so its top edge lines up with the first line of text */
.hero-logo{order:2;width:100%;max-width:300px;height:auto;justify-self:center}
.place-photo.hero-photo{margin-bottom:0}
@media (max-width:860px){
  .hero{grid-template-columns:minmax(0,1fr);padding-top:32px}
  .hero-logo{order:0;max-width:180px}
}

/* Turntable plinth: walnut veneer drawn by an SVG noise filter (long stretched noise = grain),
   under a lacquer sheen and darker edges. */
.wood-plinth{
  background:
    linear-gradient(160deg,oklch(1 0 0 / 0.09),transparent 38%,transparent 62%,oklch(0 0 0 / 0.28)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 520' preserveAspectRatio='none'%3E%3Cfilter id='g' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0035 0.09' numOctaves='5' seed='11'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='table' tableValues='0.13 0.22 0.36 0.47 0.36'/%3E%3CfeFuncG type='table' tableValues='0.07 0.13 0.22 0.3 0.22'/%3E%3CfeFuncB type='table' tableValues='0.04 0.07 0.12 0.17 0.12'/%3E%3CfeFuncA type='table' tableValues='1 1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E") center/100% 100% no-repeat,
    oklch(0.25 0.04 50);
}

/* ───── Turntable details ───── */
/* fine grain + pores (thin dark streaks) and soft darker figure blotches over the walnut base */
.wood-grain{
  pointer-events:none;opacity:0.7;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 520' preserveAspectRatio='none'%3E%3Cfilter id='f' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.55' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.05 0 0 0 0 0.02 -2.4 0 0 0 1.3'/%3E%3C/filter%3E%3Cfilter id='k' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.004 0.03' numOctaves='3' seed='21'/%3E%3CfeColorMatrix values='0 0 0 0 0.08 0 0 0 0 0.04 0 0 0 0 0.02 -1.6 0 0 0 0.85'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23k)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}
.tt .tt-bevel{position:absolute;inset:0;border-radius:28px;pointer-events:none;box-shadow:inset 0 0 0 1px oklch(1 0 0 / 0.1),inset 0 2px 0 oklch(1 0 0 / 0.14),inset 0 -3px 0 oklch(0 0 0 / 0.35),inset 0 0 40px oklch(0 0 0 / 0.3)}
.tt .tt-hinge{position:absolute;top:6px;width:90px;height:14px;border-radius:4px;background:radial-gradient(circle at 14px 7px,oklch(0.35 0.01 60) 0 2px,transparent 3px),radial-gradient(circle at 76px 7px,oklch(0.35 0.01 60) 0 2px,transparent 3px),linear-gradient(oklch(0.9 0.004 80),oklch(0.62 0.008 75));box-shadow:0 2px 4px oklch(0 0 0 / 0.4)}
.tt .tt-plate{position:absolute;left:34px;bottom:24px;display:flex;flex-direction:column;gap:2px;padding:6px 12px;border-radius:4px;background:linear-gradient(oklch(0.88 0.006 80),oklch(0.68 0.008 75));box-shadow:0 1px 3px oklch(0 0 0 / 0.5),inset 0 1px 0 oklch(1 0 0 / 0.7)}
.tt .tt-plate b{font-family:Unbounded,sans-serif;font-size:12px;color:oklch(0.25 0.01 50)}
.tt .tt-plate span{font-size:8px;font-weight:700;letter-spacing:0.18em;color:oklch(0.38 0.01 50)}
.tt .tt-strobe{position:absolute;left:112px;top:424px;width:30px;height:30px;border-radius:8px;background:linear-gradient(oklch(0.3 0.01 55),oklch(0.16 0.01 50));box-shadow:0 2px 5px oklch(0 0 0 / 0.5);display:flex;align-items:center;justify-content:center}
.tt .tt-strobe i{width:12px;height:12px;border-radius:50%;background:oklch(0.75 0.17 50);box-shadow:0 0 12px 4px oklch(0.75 0.17 50 / 0.7);opacity:0.25}
.tt .tt-rim{position:absolute;left:97px;top:27px;width:466px;height:466px;border-radius:50%;background:conic-gradient(from 20deg,oklch(0.86 0.004 80),oklch(0.55 0.008 75),oklch(0.9 0.004 80),oklch(0.5 0.008 75),oklch(0.86 0.004 80));box-shadow:0 12px 26px oklch(0 0 0 / 0.5)}
.tt .tt-armbase{position:absolute;left:664px;top:54px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 40% 35%,oklch(0.5 0.01 70),oklch(0.2 0.01 50) 70%);box-shadow:0 8px 20px oklch(0 0 0 / 0.45),inset 0 0 0 3px oklch(0.6 0.008 75)}
.tt .tt-armbase i{position:absolute;left:23px;top:23px;width:66px;height:66px;border-radius:50%;background:conic-gradient(from 30deg,oklch(0.85 0.004 80),oklch(0.5 0.008 75),oklch(0.88 0.004 80),oklch(0.48 0.008 75),oklch(0.85 0.004 80));box-shadow:0 2px 6px oklch(0 0 0 / 0.4)}
.tt .tt-rest{position:absolute;left:606px;top:330px;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,oklch(0.95 0.004 80),oklch(0.55 0.008 75));box-shadow:0 3px 6px oklch(0 0 0 / 0.45)}
.tt .tt-rest i{position:absolute;left:-3px;top:-5px;width:28px;height:10px;border-radius:0 0 8px 8px;border:3px solid oklch(0.18 0.01 50);border-top:none;box-sizing:border-box}
.tt .tt-cue{position:absolute;left:792px;top:98px;width:20px;height:44px;border-radius:10px;background:linear-gradient(90deg,oklch(0.18 0.01 50),oklch(0.32 0.01 60),oklch(0.18 0.01 50));box-shadow:0 3px 6px oklch(0 0 0 / 0.45)}
.tt .tt-cue i{position:absolute;left:7px;top:-16px;width:6px;height:28px;border-radius:3px;background:linear-gradient(90deg,oklch(0.6 0.008 75),oklch(0.95 0.004 80),oklch(0.6 0.008 75))}
.tt .tt-cue span{position:absolute;left:-6px;top:48px;font-size:8px;color:oklch(0.9 0.03 80 / 0.7);white-space:nowrap}
.tt .tt-dial{position:absolute;left:784px;top:176px;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 40% 35%,oklch(0.45 0.01 60),oklch(0.16 0.01 45));box-shadow:0 3px 8px oklch(0 0 0 / 0.5),inset 0 0 0 2px oklch(0.6 0.008 75)}
.tt .tt-dial i{position:absolute;left:20px;top:5px;width:4px;height:14px;border-radius:2px;background:oklch(0.82 0.13 72);transform:rotate(25deg);transform-origin:2px 17px}
.tt .tt-dial span{position:absolute;left:-6px;top:50px;font-size:8px;font-weight:700;color:oklch(0.9 0.03 80 / 0.75);white-space:nowrap}
.tt .tt-dial b{position:absolute;left:-10px;top:62px;font-size:7px;letter-spacing:0.12em;color:oklch(0.9 0.03 80 / 0.6);white-space:nowrap}
.tt .tt-pitch{position:absolute;left:848px;top:206px;width:30px;height:200px}
.tt .tt-pitch span{position:absolute;left:0;width:30px;text-align:center;font-size:9px;font-weight:700;color:oklch(0.9 0.03 80 / 0.75)}
.tt .tt-pitch span:first-child{top:0}.tt .tt-pitch span:nth-of-type(2){top:160px}
.tt .tt-pitch b{position:absolute;left:-2px;top:178px;font-size:7px;letter-spacing:0.12em;color:oklch(0.9 0.03 80 / 0.6)}
.tt .tt-pitch-track{position:absolute;left:12px;top:16px;width:6px;height:140px;border-radius:3px;background:oklch(0.1 0.006 45);box-shadow:inset 0 1px 3px oklch(0 0 0 / 0.8),0 0 0 1px oklch(1 0 0 / 0.08)}
.tt .tt-pitch-knob{position:absolute;left:2px;top:78px;width:26px;height:16px;border-radius:3px;background:linear-gradient(oklch(0.92 0.004 80),oklch(0.6 0.008 75));box-shadow:0 2px 4px oklch(0 0 0 / 0.5),inset 0 -2px 0 oklch(0.82 0.13 72)}
.tt .tt-weight{position:absolute;left:-14px;top:-78px;width:42px;height:60px;border-radius:7px;background:repeating-linear-gradient(0deg,oklch(0 0 0 / 0) 0 4px,oklch(0 0 0 / 0.35) 4px 5px),linear-gradient(90deg,oklch(0.3 0.01 55),oklch(0.62 0.008 75),oklch(0.3 0.01 55));box-shadow:0 4px 8px oklch(0 0 0 / 0.4)}
.tt .tt-lift{position:absolute;left:34px;top:6px;width:20px;height:5px;border-radius:3px;background:linear-gradient(oklch(0.92 0.004 80),oklch(0.55 0.008 75));transform:rotate(-25deg)}
.tt .tt-speed{position:absolute;left:606px;top:424px;display:flex;flex-direction:column;align-items:center;gap:5px}
.tt .tt-speed-keys{display:flex;gap:6px}
.tt .tt-speed-keys span{width:44px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:oklch(0.25 0.01 50);background:linear-gradient(oklch(0.92 0.004 80),oklch(0.68 0.008 75));box-shadow:0 3px 0 oklch(0.35 0.01 60),0 4px 6px oklch(0 0 0 / 0.45)}
.tt .tt-speed-keys span.on{translate:0 2px;box-shadow:0 1px 0 oklch(0.35 0.01 60),inset 0 -3px 0 oklch(0.82 0.13 72)}
.tt .tt-speed b{font-size:8px;letter-spacing:0.14em;color:oklch(0.9 0.03 80 / 0.7)}

/* ───── Reel-to-reel deck ───── */
/* brushed aluminium: very long horizontal noise streaks in a narrow grey range */
.brushed{
  background:
    linear-gradient(180deg,oklch(1 0 0 / 0.22),transparent 28%,transparent 70%,oklch(0 0 0 / 0.14)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 832 640' preserveAspectRatio='none'%3E%3Cfilter id='b' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0015 0.7' numOctaves='3' seed='4'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='table' tableValues='0.64 0.72 0.8'/%3E%3CfeFuncG type='table' tableValues='0.64 0.715 0.79'/%3E%3CfeFuncB type='table' tableValues='0.62 0.70 0.775'/%3E%3CfeFuncA type='table' tableValues='1 1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23b)'/%3E%3C/svg%3E") center/100% 100% no-repeat,
    oklch(0.76 0.006 80);
}
.r2r .screw{position:absolute;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,oklch(0.92 0.005 80),oklch(0.55 0.008 75));box-shadow:0 1px 1px oklch(0 0 0 / 0.4)}
.r2r .screw::after{content:"";position:absolute;left:1px;right:1px;top:5px;height:2px;background:oklch(0.35 0.01 60);transform:rotate(35deg)}
.r2r .reel{position:absolute;width:340px;height:340px;border-radius:50%}
.r2r .reel-spokes{position:absolute;inset:10px;border-radius:50%;background:conic-gradient(oklch(0.84 0.008 80 / 0.95) 0deg 20deg,transparent 20deg 100deg,oklch(0.84 0.008 80 / 0.95) 100deg 140deg,transparent 140deg 220deg,oklch(0.84 0.008 80 / 0.95) 220deg 260deg,transparent 260deg 340deg,oklch(0.84 0.008 80 / 0.95) 340deg 360deg)}
.r2r .reel-rim{position:absolute;inset:0;box-sizing:border-box;border-radius:50%;border:12px solid oklch(0.88 0.008 80);box-shadow:inset 0 0 0 1px oklch(0.6 0.008 75),0 0 0 1px oklch(0.55 0.008 75)}
.r2r .reel-hub{position:absolute;left:118px;top:118px;width:104px;height:104px;border-radius:50%;background:radial-gradient(circle at 40% 35%,oklch(0.96 0.005 80),oklch(0.7 0.008 75));box-shadow:0 0 0 1px oklch(0.6 0.008 75)}
.r2r .reel-hub i{position:absolute;left:47px;top:8px;width:10px;height:18px;border-radius:3px;background:oklch(0.3 0.01 50);transform-origin:5px 44px}
.r2r .reel-hub b{position:absolute;left:40px;top:40px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 40% 35%,oklch(0.45 0.01 60),oklch(0.2 0.01 50))}
.r2r .tension{position:absolute;width:8px;height:66px;border-radius:4px;background:linear-gradient(90deg,oklch(0.6 0.008 75),oklch(0.93 0.004 80),oklch(0.6 0.008 75));transform-origin:4px 62px;box-shadow:2px 3px 4px oklch(0 0 0 / 0.3)}
.r2r .tension::before{content:"";position:absolute;left:-5px;top:-7px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 40% 35%,oklch(0.95 0.004 80),oklch(0.62 0.008 75));box-shadow:0 1px 3px oklch(0 0 0 / 0.35)}
.r2r .tension::after{content:"";position:absolute;left:-4px;top:56px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,oklch(0.3 0.01 50),oklch(0.18 0.01 45))}
.r2r .headblock{position:absolute;left:372px;top:354px;width:156px;height:64px;border-radius:10px 10px 6px 6px;background:linear-gradient(oklch(0.3 0.01 55),oklch(0.2 0.01 50));box-shadow:0 4px 10px oklch(0 0 0 / 0.35),inset 0 1px 0 oklch(1 0 0 / 0.12)}
.r2r .headblock-labels{position:absolute;left:0;right:0;top:8px;display:flex;justify-content:space-around;padding:0 10px;font-size:9px;font-weight:700;letter-spacing:0.08em;color:oklch(0.72 0.02 70)}
.r2r .heads{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:0 14px}
.r2r .heads i{width:24px;height:22px;border-radius:8px 8px 2px 2px;background:linear-gradient(90deg,oklch(0.58 0.01 80),oklch(0.95 0.004 80),oklch(0.58 0.01 80));box-shadow:inset 0 -3px 0 oklch(0.4 0.01 60)}
.r2r .capstan{position:absolute;left:526px;top:417px;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,oklch(0.97 0.003 80),oklch(0.5 0.008 75));box-shadow:0 0 0 1px oklch(0.35 0.01 60)}
.r2r .pinch{position:absolute;left:510px;top:428px;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle,oklch(0.55 0.01 70) 0 4px,oklch(0.16 0.01 50) 5px 100%);box-shadow:0 2px 5px oklch(0 0 0 / 0.4),inset 0 0 0 2px oklch(0.24 0.01 50)}
.r2r .guide{position:absolute;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 40% 35%,oklch(0.96 0.004 80),oklch(0.62 0.008 75));box-shadow:0 2px 5px oklch(0 0 0 / 0.3)}
.r2r .guide i{position:absolute;left:12px;top:3px;width:4px;height:4px;border-radius:50%;background:oklch(0.3 0.01 50)}

.r2r-panel{position:absolute;left:44px;right:44px;top:476px;height:140px;box-sizing:border-box;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:14px;background:linear-gradient(oklch(0.24 0.008 60),oklch(0.15 0.008 50));box-shadow:inset 0 1px 0 oklch(1 0 0 / 0.1),inset 0 -2px 0 oklch(0 0 0 / 0.4),0 2px 0 oklch(1 0 0 / 0.35)}
.r2r-brand{display:flex;flex-direction:column;gap:4px;min-width:150px}
.r2r-cap{font-size:10px;font-weight:700;letter-spacing:0.14em;color:oklch(0.68 0.02 70);white-space:nowrap}
.toggle-sw{position:relative;width:18px;height:28px;border-radius:9px;background:oklch(0.1 0.005 50);box-shadow:inset 0 2px 4px oklch(0 0 0 / 0.7),0 0 0 2px oklch(0.45 0.008 70)}
.toggle-sw i{position:absolute;left:5px;top:3px;width:8px;height:14px;border-radius:4px;background:linear-gradient(90deg,oklch(0.6 0.008 75),oklch(0.95 0.004 80),oklch(0.6 0.008 75))}
.keys{display:flex;gap:10px}
.key-wrap{display:flex;flex-direction:column;align-items:center;gap:9px}
.key{position:relative;width:58px;height:56px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:oklch(0.25 0.01 50);background:linear-gradient(oklch(0.93 0.004 80),oklch(0.74 0.006 80));box-shadow:0 5px 0 oklch(0.38 0.01 60),0 7px 10px oklch(0 0 0 / 0.5),inset 0 1px 0 oklch(1 0 0 / 0.9)}
.key.hw:active,.key.on{translate:0 4px;box-shadow:0 1px 0 oklch(0.38 0.01 60),0 2px 4px oklch(0 0 0 / 0.5),inset 0 1px 0 oklch(1 0 0 / 0.6)}
.key-rec{color:oklch(0.6 0.2 28)}
.key .lamp{position:absolute;top:6px;left:50%;width:16px;height:4px;margin-left:-8px;border-radius:2px;background:oklch(0.42 0.04 60)}
.key.on .lamp{background:oklch(0.88 0.15 78);box-shadow:0 0 8px 2px oklch(0.85 0.15 78 / 0.7)}
.ico{display:flex;align-items:center;gap:2px}
.ico-play i{width:0;height:0;margin-left:4px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:15px solid currentColor}
.ico-rew i{width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:11px solid currentColor}
.ico-ff i{width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor}
.ico-pause{gap:5px}.ico-pause i{width:5px;height:17px;border-radius:1px;background:currentColor}
.ico-stop i{width:15px;height:15px;border-radius:2px;background:currentColor}
.ico-rec i{width:16px;height:16px;border-radius:50%;background:currentColor}
.r2r-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:150px}
.r2r-counter{padding:6px 14px;border-radius:6px;background:oklch(0.1 0.006 45);box-shadow:inset 0 3px 8px oklch(0 0 0 / 0.7),0 0 0 2px oklch(0.4 0.008 70)}
.r2r-counter span{font-family:ui-monospace,Menlo,monospace;font-size:26px;font-weight:700;letter-spacing:0.14em;color:oklch(0.82 0.13 72)}
.speed{display:flex;gap:4px}
.speed span{padding:3px 6px;border-radius:4px;font-size:10px;font-weight:700;color:oklch(0.68 0.02 70);box-shadow:inset 0 0 0 1px oklch(0.95 0.015 80 / 0.2)}
.speed span.on{background:oklch(0.78 0.14 70);color:oklch(0.18 0.02 40);box-shadow:none}

/* Hardware controls on the turntable / cassette deck / reel-to-reel drive the demo player */
.hw{cursor:pointer;transition:filter .12s,translate .08s}
.hw:hover{filter:brightness(1.18)}
.hw:active{translate:0 2px}
.hw:focus-visible{outline:3px solid oklch(0.78 0.14 70);outline-offset:3px}

/* Genre filter chips above the demo player */
.tag{padding:7px 14px;border-radius:999px;border:1px solid oklch(0.95 0.015 80 / 0.14);background:transparent;font-size:14px;color:oklch(0.82 0.02 60);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.tag:hover{border-color:oklch(0.95 0.015 80 / 0.3);color:oklch(0.95 0.015 80)}
.tag:focus-visible{outline:2px solid oklch(0.78 0.14 70);outline-offset:2px}
.tag.tag-on{background:oklch(0.78 0.14 70);border-color:oklch(0.78 0.14 70);color:oklch(0.18 0.02 40);font-weight:700}

/* About: portrait + text */
.about{padding:72px 0 0;display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:32px 56px;align-items:center;scroll-margin-top:60px}
.about-photo{margin:0;border-radius:24px;overflow:hidden;background:oklch(0.2 0.02 45)}
.about-photo img{display:block;width:100%;height:auto}
.about-text{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (max-width:860px){.about{grid-template-columns:minmax(0,1fr)}.about-photo{max-width:460px}}

/* Studio: photo + address + map */
.place{padding:120px 0 0;display:flex;flex-direction:column;gap:40px;scroll-margin-top:60px}
.place-photo{margin:0;border-radius:24px;overflow:hidden;background:oklch(0.2 0.02 45)}
.place-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
@media (min-width:861px){.place-photo img{aspect-ratio:16/8}}
.place-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;align-items:stretch}
.place-card{display:flex;flex-direction:column;gap:14px;padding:28px;border-radius:24px;background:oklch(0.95 0.015 80 / 0.05);border:1px solid oklch(0.95 0.015 80 / 0.1)}
.place-map{min-height:320px;border-radius:24px;overflow:hidden;border:1px solid oklch(0.95 0.015 80 / 0.1);background:oklch(0.2 0.02 45)}
.place-map iframe{display:block;width:100%;height:100%;min-height:320px;border:0}

/* hover / focus states (inline styles in markup need !important to be overridden) */
.h1:hover{color:oklch(0.95 0.015 80) !important}
.h2:hover{background:oklch(0.84 0.13 70) !important;color:oklch(0.18 0.02 40) !important}
.h3:hover{background:oklch(0.95 0.015 80 / 0.16) !important}
.h4:hover{background:oklch(0.84 0.13 70) !important}
.h5:hover{border-color:oklch(0.95 0.015 80 / 0.22) !important}

/* Contact: Telegram */
.contact{padding:120px 0;scroll-margin-top:60px}
.contact-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;padding:56px 24px;border-radius:28px;background:radial-gradient(70% 90% at 50% 0%,oklch(0.78 0.14 70 / 0.16),transparent 70%),oklch(0.95 0.015 80 / 0.04);border:1px solid oklch(0.95 0.015 80 / 0.1)}
.contact-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:oklch(0.18 0.02 40);background:oklch(0.78 0.14 70);box-shadow:0 0 0 10px oklch(0.78 0.14 70 / 0.15),0 0 40px oklch(0.78 0.14 70 / 0.35)}
.contact-icon svg{margin-left:-3px}
.contact-btn{margin-top:8px;display:inline-flex;align-items:center;gap:10px;padding:16px 28px;border-radius:999px;background:oklch(0.78 0.14 70);color:oklch(0.18 0.02 40);font-weight:700;font-size:17px;transition:background .15s}
.contact-btn:hover{background:oklch(0.84 0.13 70);color:oklch(0.18 0.02 40)}
.contact-btn:focus-visible{outline:3px solid oklch(0.95 0.015 80);outline-offset:3px}
