@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;450;500;550;600&display=swap');

:root{color-scheme:dark;--bg:#191b19;--text:#e8e7dd;--muted:#a2a79b;--faint:#787e72;--line:#343930;--accent:#c3d7a1;--font:'Montserrat',sans-serif}
html[data-theme=light]{color-scheme:light;--bg:#f3f2e9;--text:#2d382d;--muted:#626b5c;--faint:#687260;--line:#d2d7c9;--accent:#577443}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:40px}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.7 var(--font)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:7px}
::selection{background:var(--accent);color:var(--bg)}
.skip{position:absolute;z-index:20;left:20px;top:-90px;background:var(--text);color:var(--bg);padding:10px 18px}
.skip:focus{top:15px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header{max-width:1440px;margin:auto;padding:30px 6.3%;height:100px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.wordmark{font-size:20px;font-weight:550;letter-spacing:-1px;line-height:1}
nav{display:flex;align-items:center;gap:32px;font-size:12px}
.nav-link{color:var(--muted);transition:color .2s}
.nav-link:hover{color:var(--text)}
.theme-button{border:0;width:32px;height:32px;background:none;font-size:23px;display:grid;place-items:center;line-height:1}
.hero{max-width:1440px;margin:auto;min-height:680px;height:calc(100svh - 100px);max-height:940px;position:relative;padding:125px 6.3% 90px;isolation:isolate}
.pond-stage{position:absolute;inset:-40px 0 50px 22%;z-index:-1;overflow:hidden}
#pond-canvas{width:100%;height:100%;display:block;touch-action:pan-y}
.hero-copy{width:48%;pointer-events:none}
.hero-copy a{pointer-events:auto}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(72px,7.3vw,108px);line-height:1.06;letter-spacing:-.065em;margin:0 0 32px;font-weight:500}
.intro{font-size:13px;line-height:1.95;max-width:430px}
.intro p{color:var(--muted);margin:0 0 24px}
.accent{color:var(--accent)}
.text-link{display:inline-flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);padding-bottom:5px;font-size:12px;line-height:1.8}
.text-link span{color:var(--accent);transition:transform .2s}
.text-link:hover span{transform:translate(3px,2px)}
.pond-controls{position:absolute;right:8%;bottom:95px;display:flex;gap:14px;align-items:center;font-size:11px}
.pond-controls button{background:none;border:0;padding:10px 0;font:inherit}
.feed-button{color:var(--text)}
.feed-button span{color:var(--accent);margin-left:10px}
.quiet-button,.control-divider{color:var(--muted)}
.hero-footer{position:absolute;bottom:25px;left:6.3%;right:6.3%;border-bottom:1px solid var(--line);padding-bottom:22px;font-size:11px;color:var(--muted)}
.work-section{max-width:1440px;margin:auto;padding:95px 6.3% 100px}
.section-heading{margin-bottom:48px}
h2{font-size:clamp(32px,4vw,52px);line-height:1.16;font-weight:500;letter-spacing:-.045em;margin:0}
.title-line{display:block;transform:translateY(22px);transition:transform .85s cubic-bezier(.2,.8,.2,1)}
.title-line:nth-child(2){transition-delay:.14s}
.revealed .title-line{transform:translateY(0)}
.in-view.revealed .title-line{animation:title-drift 7s ease-in-out infinite}
.in-view.revealed .title-line:nth-child(2){animation-delay:1s}
.revealed #work-title .accent{display:inline-block;animation:dot-drift 4s ease-in-out infinite}
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.project-visual{height:330px;padding:25px;display:flex;position:relative;flex-direction:column;justify-content:center;overflow:hidden;border:1px solid var(--line)}
.feed-visual{background:#242d26}
.focus-visual{background:#272b25}
.visual-bottom{position:absolute;bottom:18px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.06em;color:#a5b3a1}
.visual-bottom>span{font-size:22px;color:#c2d7ab}
.feed-demo{width:75%;max-width:330px;align-self:center;margin-top:-14px;border:1px solid #53614e;border-radius:5px;color:#d9e3d1;box-shadow:0 14px 40px #10181055;transform:rotate(-3deg);background:#20281f;animation:feed-float 6s ease-in-out infinite;animation-play-state:paused}
.demo-top{padding:12px 16px;display:flex;align-items:center;font-size:10px;gap:9px;border-bottom:1px solid #3b4735}
.demo-mark{color:#bcd2a1;font-size:17px;font-weight:500}
.live-dot{margin-left:auto;background:#c1d9a0;width:5px;height:5px}
.feed-row{padding:10px 16px;display:flex;gap:12px;border-bottom:1px solid #33412d;font-size:9px;line-height:1.6;animation:feed-arrive 4.5s ease-in-out infinite;animation-play-state:paused}
.feed-row:nth-child(3){animation-delay:.75s}
.feed-row:nth-child(4){animation-delay:1.5s}
.feed-number{color:#788570}
.feed-row>span:last-child{margin-left:auto;color:#a4b28c}
.feed-row i{display:block;font-style:normal;font-size:8px;color:#819174}
.demo-bottom{padding:11px 16px;font-size:7px;letter-spacing:.05em;color:#9caa8b;display:flex;justify-content:space-between}
.demo-bottom span{color:#cedfba}
.project-title{margin-top:24px;display:flex;justify-content:space-between;align-items:center}
.project-title h3{font-size:22px;letter-spacing:-.04em;font-weight:500;margin:0 0 12px}
.project-title>span{font-size:10px;color:var(--faint)}
.project>p{color:var(--muted);font-size:13px;line-height:1.8;max-width:470px;margin-bottom:24px}
.project-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:15px;gap:15px;font-size:9px;line-height:1.7;color:var(--muted)}
.project-meta a{font-size:10px;color:var(--text)}
.focus-art{height:230px;position:relative;width:100%;align-self:center;display:grid;place-items:center}
.focus-bars{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.focus-bars span{display:block;height:1px;width:65%;background:#8eac6c;opacity:.17;transform-origin:left;animation:focus-scan 4s ease-in-out infinite;animation-play-state:paused}
.focus-bars span:nth-child(2n){width:80%}
.focus-bars span:nth-child(3n){width:50%}
.focus-bars span:nth-child(2){animation-delay:.2s}.focus-bars span:nth-child(3){animation-delay:.4s}.focus-bars span:nth-child(4){animation-delay:.6s}.focus-bars span:nth-child(5){animation-delay:.8s}.focus-bars span:nth-child(6){animation-delay:1s}.focus-bars span:nth-child(7){animation-delay:1.2s}
.focus-center{z-index:1;background:#272b25;padding:16px 24px;font-size:45px;font-weight:450;letter-spacing:-.06em;line-height:1;color:#c1d39f;text-align:center}
.focus-center span{display:block;font-size:9px;font-weight:400;letter-spacing:.02em;margin-top:16px;color:#a4b293}
.project.in-view .feed-demo,.project.in-view .feed-row,.project.in-view .focus-bars span{animation-play-state:running}
.about-section{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--line);padding:70px 6.3% 90px}
.about-copy{max-width:470px}
.about-copy p{color:var(--muted);line-height:1.9;margin-bottom:22px}
.site-footer{max-width:1440px;margin:auto;border-top:1px solid var(--line);padding:30px 6.3%;display:flex;align-items:center;justify-content:space-between;gap:35px}
.site-footer .wordmark{font-size:16px}
.site-footer>a:not(.wordmark){font-size:11px;color:var(--muted)}
@keyframes feed-float{0%,100%{transform:translateY(3px) rotate(-3deg)}50%{transform:translateY(-5px) rotate(-1deg)}}
@keyframes feed-arrive{0%,70%,100%{opacity:.65;transform:translateX(0)}30%{opacity:1;transform:translateX(4px)}}
@keyframes focus-scan{0%,100%{transform:scaleX(.65);opacity:.12}50%{transform:scaleX(1);opacity:.6}}
@keyframes dot-drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes title-drift{0%,100%{transform:translateX(0)}50%{transform:translateX(8px)}}
html[data-motion=paused] *,html[data-motion=paused] *::before,html[data-motion=paused] *::after{animation-play-state:paused!important}
@media(max-width:1000px){.hero{min-height:650px;padding-top:115px}h1{font-size:82px}.pond-stage{left:16%}.pond-controls{right:7%;bottom:90px}.project-grid{gap:24px}.project-visual{height:300px;padding:20px}.feed-demo{width:92%}.project-meta{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:650px){.site-header{height:85px;padding:22px 7%}nav{gap:16px;font-size:10px}.wordmark{font-size:18px;letter-spacing:-.8px}.theme-button{width:24px;height:29px;font-size:20px}.hero{height:auto;min-height:775px;padding:55px 7% 390px}.hero-copy{width:100%}h1{font-size:74px;margin-bottom:25px}.intro{font-size:12px}.intro p{margin-bottom:20px}.pond-stage{inset:285px 0 65px -12%;opacity:1}.pond-controls{bottom:75px;right:7%;font-size:10px;gap:12px}.feed-button span{margin-left:7px}.hero-footer{left:7%;right:7%;font-size:10px;padding-bottom:20px;bottom:16px}.work-section{padding:60px 7% 65px}.section-heading{margin-bottom:35px}h2{font-size:35px}.project-grid{grid-template-columns:1fr;gap:45px}.project-visual{height:305px}.feed-demo{width:86%}.project-title{margin-top:20px}.project-title h3{font-size:22px}.project>p{font-size:12px;margin-bottom:18px}.project-meta{flex-direction:row;align-items:center;font-size:7px}.project-meta a{font-size:9px}.about-section{padding:55px 7% 60px;grid-template-columns:1fr;gap:25px}.about-copy p{font-size:13px}.site-footer{padding:26px 7%}.site-footer .wordmark{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.15s!important;animation-duration:10s!important}.title-line{transform:none}}

/* The painted world stays behind the whole portfolio, including the work section. */
:root{color-scheme:light;--bg:#f7f6eb;--text:#263c30;--muted:#52634f;--faint:#6f7b62;--line:#cbd0b8;--accent:#52713a}
body{background:#76b8d8;color:var(--text)}
.landscape{position:fixed;inset:0;z-index:0;overflow:hidden;background:#76b8d8 url('../assets/green-meadow.png') center/cover no-repeat;pointer-events:none}
#landscape-canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1.1s}
.scene-ready #landscape-canvas{opacity:1}
.scene-shade,.sunlight{position:absolute;inset:0;pointer-events:none}
.scene-shade{background:linear-gradient(180deg,#173c5029 0%,transparent 45%,#18302017 100%)}
.sunlight{inset:-25%;background:linear-gradient(108deg,transparent 30%,#fff9cf30 45%,transparent 62%);mix-blend-mode:screen;animation:sunlight-drift 19s ease-in-out infinite}
.site-header,main,.site-footer{position:relative;z-index:2}
.site-header{color:#fff9ed;text-shadow:0 1px 8px #19465390}
.nav-link{color:#fff9ed}
.nav-link:hover{color:white}
.hero{height:calc(100svh - 100px);min-height:620px;max-height:none;display:flex;align-items:center;justify-content:center;padding:0 6.3% 190px;text-align:center}
.hero-copy{width:100%;color:#fffbed;text-shadow:0 2px 25px #17425480,0 1px 4px #143b4655}
.hero h1{font-size:clamp(46px,5vw,76px);font-weight:500;letter-spacing:-.065em;margin:0 0 15px;line-height:1.2}
.hero .intro{max-width:none;font-size:13px}
.hero .intro p{color:inherit;margin-bottom:22px}
.hero .text-link{color:#fffbed;border-color:#fffbed80;font-size:11px}
.hero .text-link span{color:inherit}
.hero-footer{border:none;color:#fffbed;left:0;right:0;bottom:25px;text-shadow:0 1px 8px #19311f;font-size:12px}
.content-panel{max-width:1140px;margin:60px auto;background:#f7f7e9eb;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid #fffff099;border-radius:18px;box-shadow:0 25px 90px #1c402620}
.work-section{padding:50px 48px 55px}
.about-section{padding:45px 48px;gap:40px}
.section-heading{margin-bottom:38px}
h2{font-size:43px}
.project-grid{gap:30px}
.project-visual{height:305px}
.project-title h3{font-size:21px}
.project>p{font-size:12px}
.about-copy p{font-size:13px}
.site-footer{max-width:1140px;border:none;padding:25px 2px 95px;color:#fffbed;text-shadow:0 1px 8px #19311f}
.site-footer>a:not(.wordmark){color:inherit}
.scene-controls{position:fixed;z-index:10;right:26px;bottom:24px;display:flex;align-items:center;gap:15px;padding:9px 15px;background:#18362654;border:1px solid #ffffff30;border-radius:7px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff9e9;font-size:10px;box-shadow:0 4px 20px #153c1e17}
.scene-controls button{background:none;border:none;font:inherit;padding:3px;color:inherit}
.scene-controls>span{opacity:.5}
.scene-controls button:disabled{opacity:.4;cursor:default}
@keyframes sunlight-drift{0%,100%{transform:translateX(-10%) rotate(-3deg);opacity:.55}50%{transform:translateX(12%) rotate(3deg);opacity:1}}
@media(max-width:1000px){.hero{padding-top:0;min-height:620px}.content-panel{margin:40px 6%;}.site-footer{margin:0 6%}}
@media(max-width:650px){.hero{height:calc(100svh - 85px);min-height:560px;padding:0 7% 155px}.hero h1{font-size:44px;letter-spacing:-.065em}.hero .intro{font-size:11px}.hero .text-link{font-size:10px}.hero-footer{left:0;right:0;bottom:18px}.site-header{height:85px}.wordmark{font-size:18px}.nav-link{font-size:10px}.content-panel{margin:28px 14px;border-radius:12px}.work-section{padding:30px 23px 35px}.about-section{padding:30px 23px;gap:20px}.section-heading{margin-bottom:28px}h2{font-size:32px}.project-grid{gap:35px}.project-visual{height:280px;padding:16px}.feed-demo{width:90%}.project-title h3{font-size:20px}.project-meta{font-size:7px}.project-meta a{font-size:8px}.project>p{font-size:11px}.scene-controls{right:14px;bottom:14px;font-size:9px;padding:8px 12px;gap:12px}.site-footer{padding-bottom:85px;margin:0 7%}.focus-center{font-size:39px}}
.hero{padding-bottom:50vh}
.hero-copy{color:#173f52;text-shadow:0 1px 16px #fff7d987}
.hero .intro p{color:#163e48;font-weight:500;margin-bottom:18px}
.hero .text-link{background:#fff9e4c9;border:1px solid #fff9e4b0;border-radius:5px;padding:7px 13px;color:#25462f;text-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
@media(max-width:650px){.hero{padding-bottom:45vh}.hero .intro p{font-size:11px}}
#ascii-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;pointer-events:none}
html[data-render=ascii] .landscape{background:#101d18}
html[data-render=ascii] #landscape-canvas{opacity:0;transition:none}
html[data-render=ascii] #ascii-canvas{opacity:1}
html[data-render=ascii] .sunlight{display:none}
html[data-render=ascii] .scene-shade{opacity:.15}
html[data-render=ascii] .hero-copy,html[data-render=ascii] .hero .intro p{color:#fff8df;text-shadow:0 1px 8px #07120d}
html[data-render=ascii]{--text:#edeedb;--muted:#b9c7a8;--faint:#9baa8e;--line:#56634b;--accent:#d6d98f}
html[data-render=ascii] .content-panel{background:#15281eea;border-color:#82956755}

html.ascii-in-scene[data-render=ascii] #landscape-canvas{opacity:1}
html.ascii-in-scene[data-render=ascii] #ascii-canvas{opacity:0}

/* A small scroll handle; native scrolling remains the page's scrolling mechanism. */
.page-scroll-handle { display: none; }
@media (forced-colors: none) {
  :root.scroll-handle-ready { scrollbar-width: none; }
  :root.scroll-handle-ready::-webkit-scrollbar { display: none; }
  .scroll-handle-ready .page-scroll-handle:not([hidden]) {
    position: fixed;
    z-index: 30;
    top: 0;
    right: 4px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    transform: translateY(var(--scroll-handle-y, 20px));
    opacity: 0;
    pointer-events: none;
    cursor: grab;
    touch-action: none;
    user-select: none;
    transition: opacity 240ms ease;
  }
  .scroll-handle-ready .page-scroll-handle.is-visible,
  .scroll-handle-ready .page-scroll-handle:focus-visible {
    opacity: 1;
    pointer-events: auto;
  }
  .page-scroll-handle__dot {
    display: block;
    width: 5px;
    height: 26px;
    border-radius: 5px;
    border: 1px solid #EEEEDD;
    background: #526B3D;
    box-shadow: 0 1px 5px #142B2270;
  }
  .page-scroll-handle:hover .page-scroll-handle__dot,
  .page-scroll-handle.is-dragging .page-scroll-handle__dot { background: #B99541; }
  .scroll-handle-ready .page-scroll-handle.is-dragging { cursor: grabbing; }
  .page-scroll-handle:focus-visible { outline: 1px solid var(--accent); outline-offset: -4px; border-radius: 6px; }
  html[data-render=ascii] .page-scroll-handle__dot { background: #B8BD79; border-color: #101D18; }
  html[data-render=ascii] .page-scroll-handle:hover .page-scroll-handle__dot,
  html[data-render=ascii] .page-scroll-handle.is-dragging .page-scroll-handle__dot { background: #D6D98F; }
}
@media (prefers-reduced-motion: reduce) { .page-scroll-handle { transition: none !important; } }


/* Floating content, without section cards or redundant headings. */
.hero .text-link{background:#fffaf00d;border:1px solid #fff9e4b0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .2s,backdrop-filter .2s}
.hero .text-link:hover{background:#fffaf026;border-color:#fff9e4b0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.content-panel,html[data-render=ascii] .content-panel{background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.work-section{padding:48px 0}.project-grid{gap:32px}.project-visual{border-radius:12px;border-color:#ffffff60;box-shadow:0 5px 25px #183b2725}
.project-title{margin-top:14px}.project-title h3{font-size:19px;margin-bottom:7px}.project>p{margin-bottom:10px}.project-meta{border:0;padding-top:0}
.project>p,.project-meta,.project-title>span{color:#254b37}.project-title,.project>p,.project-meta,.about-copy{text-shadow:0 1px 8px #fff9e4cc}
.about-section{display:block;padding:48px 0}.about-copy{max-width:560px}.about-copy p{color:#254b37}
.scene-controls{opacity:var(--scene-controls-opacity,1);transition:opacity .22s}.scene-controls-hidden .scene-controls{pointer-events:none}
#gui-toggle{position:fixed;z-index:40;left:20px;bottom:22px;padding:7px 12px;background:#18362654;border:1px solid #ffffff50;border-radius:7px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff9e9;font-size:10px}
.gui-hidden .site-header,.gui-hidden main,.gui-hidden .site-footer,.gui-hidden .scene-controls,.gui-hidden .field-tuner,.gui-hidden #field-editor-bar,.gui-hidden #page-scroll-handle,.gui-hidden #field-edit-overlay{visibility:hidden!important;pointer-events:none!important}
@media(max-width:650px){.work-section,.about-section{padding:30px 9px}.project-grid{gap:32px}#gui-toggle{left:14px;bottom:66px}}

.project-title,.project>p,.project-meta,.about-copy{text-shadow:0 1px 2px #fffbe6,0 0 5px #fffbe6,1px 0 1px #fffbe6,-1px 0 1px #fffbe6}
.project>p{font-size:13px}.project-meta{font-size:10px}.about-copy p{font-size:16px}

/* Each project is one card, including its text and links. */
.project{background:#20352ce8;border:1px solid #ffffff42;border-radius:14px;overflow:hidden;box-shadow:0 8px 30px #16352725;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#f6f5e8}
.project .project-visual{border:0;border-radius:0;box-shadow:none;border-bottom:1px solid #ffffff1c}
.project .project-title{margin:18px 20px 0}.project .project-title h3{color:#f6f5e8}.project .project-title>span{color:#b8c9b0}
.project>p{margin:0 20px 16px;color:#d0dcc8;min-height:42px}.project .project-meta{margin:0 20px 20px;color:#b8c9b0;gap:12px}.project .project-meta a{color:#f6f5e8}
.project .project-title,.project>p,.project .project-meta{ text-shadow:none }
.about-copy{display:inline-block;max-width:560px;padding:23px 26px;background:#20352c9c;border:1px solid #ffffff40;border-radius:12px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#fffbed;text-shadow:none;box-shadow:0 6px 25px #16352715}
.about-copy p{color:#fffbed;margin-bottom:13px}.about-copy .text-link{border-color:#fffbed80;color:#fffbed}.about-copy .text-link span{color:#d0dfbe}
@media(max-width:650px){.project .project-title{margin:16px 17px 0}.project>p{margin:0 17px 14px;min-height:0}.project .project-meta{margin:0 17px 18px;font-size:9px;flex-wrap:wrap}.about-copy{padding:20px}.about-copy p{font-size:14px}}

/* Moonlight keeps the painted texture and readable, quiet UI. */
html[data-night]{color-scheme:dark;--bg:#0a162b;--text:#e3eaf2;--muted:#bbcbdc;--faint:#a0b5cb;--line:#68829c;--accent:#e0e8ac}
.sunlight,.scene-shade,.hero-copy,.hero .intro p,.hero .text-link,.project,.about-copy,.scene-controls{transition:color 1s,background-color 1s,opacity 1s,text-shadow 1s}
html[data-night] body{background:#0a162b}
html[data-night] .sunlight{opacity:0;animation:none}
html[data-night] .scene-shade{background:linear-gradient(180deg,#05112a12,transparent 45%,#050e211c)}
html[data-night] .hero-copy,html[data-night] .hero .intro p{color:#edf3ff;text-shadow:0 2px 15px #020a24b0}
html[data-night] .hero .text-link{color:#edf3ff;background:#14294944;border-color:#c9ddf080}
html[data-night] .project{background:#102039ec;border-color:#afc8e044}
html[data-night] .about-copy{background:#102039b8;color:#edf3ff;text-shadow:none}
html[data-night] .about-copy p{color:#d5e1ee}
html[data-night] .scene-controls,html[data-night] #gui-toggle{background:#0a193acc}
html[data-night] .scene-controls button[aria-pressed=true]{color:#e6efa9}
@media(max-width:650px){.scene-controls{max-width:calc(100vw - 28px);gap:8px;padding:8px 10px}}
