:root{color-scheme:light;--blue:#2056dc;--ink:#20242b;--paper:#f5f6f8;--toolbar-height:64px;font-family:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:0;background:var(--paper)}
body{margin:0;color:var(--ink);background:var(--paper);padding-bottom:env(safe-area-inset-bottom,0px)}
button,a,input{-webkit-tap-highlight-color:transparent}
button,input{font:inherit}
button,a{touch-action:manipulation}
button{color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
button:disabled{cursor:default;opacity:.28}
button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:100;left:16px;top:12px;transform:translateY(-200%);padding:12px 18px;background:white;color:var(--blue);border-radius:8px}
.skip-link:focus{transform:none}
.loading{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;font-size:12px;letter-spacing:.08em;color:#69707b}
.loading-mark{font-size:64px;line-height:1;font-weight:800;color:var(--blue);letter-spacing:-.08em}
.portfolio-section{min-height:100svh;padding:12px max(env(safe-area-inset-right),12px) calc(var(--toolbar-height) + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:center;position:relative;scroll-margin:0}
.canvas{width:min(100%,calc((100svh - var(--toolbar-height) - 24px - env(safe-area-inset-bottom,0px)) * 16 / 9));aspect-ratio:16/9;position:relative;flex-shrink:0;background:#fff;isolation:isolate}
.artwork{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none}
.marquee{position:absolute;left:0;width:100%;overflow:hidden;z-index:1;pointer-events:none;visibility:hidden;background:rgb(11.369324%,33.729553%,90.979004%)}
.marquee.is-ready{visibility:visible}
.marquee-track{display:flex;width:var(--track-width);height:100%;animation:marquee var(--duration) linear infinite;will-change:transform}
.marquee-track img{display:block;flex:0 0 var(--tile-width);width:var(--tile-width);height:100%;max-width:none;user-select:none}
@keyframes marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--travel),0,0)}}
.player{position:absolute;z-index:2;isolation:isolate}
.player-viewport{position:absolute;inset:0;overflow:hidden;background:transparent}
.player video,.player-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.player video{visibility:hidden;background:#111}
.player-poster{opacity:1;transition:opacity .12s;pointer-events:none}
.player[data-started=true] video{visibility:visible}
.player[data-started=true] .player-poster{opacity:0}
.play-button{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;padding:0;border-radius:50%;border:1px solid #ffffffa8;background:#101a2ba8;box-shadow:0 2px 12px #0002;color:white;display:grid;place-items:center;transition:background .2s,opacity .2s,transform .2s}
.play-button:hover{background:#2056dcec;transform:translate(-50%,-50%) scale(1.06)}
.play-button svg{width:17px;height:17px;fill:currentColor;stroke:none;margin-left:2px}
.player[data-state=playing] .play-button{opacity:0}
.player[data-state=playing]:hover .play-button,.player[data-state=playing]:focus-within .play-button{opacity:1}
.player[data-state=playing] .play-button svg,.player[data-state=paused] .play-button svg{margin-left:0}
.player[data-state=loading] .play-button:after{content:"";position:absolute;inset:6px;border:1px solid #fff5;border-top-color:white;border-radius:50%;animation:spin 1s linear infinite}
.player[data-state=error] .play-button{background:#6e2937e0}
.player.compact .play-button{width:32px;height:32px}
.player.tiny .play-button{width:28px;height:28px}
.player.tiny .play-button svg{width:12px;height:12px}
.player:fullscreen{background:#080b11;width:100vw!important;height:100vh!important;inset:0!important}
.player:fullscreen .player-viewport video{object-fit:contain!important}
.player:fullscreen .play-button{width:60px;height:60px}
.contact-hotspot{position:absolute;z-index:3;border-radius:3px;background:transparent}
.contact-hotspot:hover{box-shadow:0 1px 0 var(--blue)}
.contact-hotspot:focus-visible{background:#fff4}
.toolbar{position:fixed;z-index:30;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);height:44px;max-width:calc(100% - 24px);display:flex;gap:14px;align-items:center;padding:4px 8px;background:#fffffff0;border:1px solid #e3e6eb;border-radius:30px;box-shadow:0 4px 24px #1830500c;backdrop-filter:blur(18px);font-size:12px}
.index-button{height:34px;padding:0 10px;display:flex;align-items:center;gap:8px;border:0;background:none;border-radius:20px;font-size:12px;white-space:nowrap}
.index-button:hover,.icon-button:hover{background:#eef2fa;color:var(--blue)}
.icon-button{border:0;background:transparent;border-radius:50%;width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;font-size:20px;line-height:1;padding:0}
.navigation{display:flex;align-items:center;gap:5px}
#page-indicator{display:block;font-variant-numeric:tabular-nums;min-width:58px;text-align:center;font-size:12px}
#page-indicator span{color:#939aa4}
.contact-shortcut{padding:0 10px;color:#5c6573;text-decoration:none;white-space:nowrap;font-size:12px}
.contact-shortcut:hover{color:var(--blue)}
.playback{display:flex;align-items:center;gap:4px}
[hidden]{display:none!important}
.toolbar.playing .contact-shortcut{display:none}
.seek-wrap{display:flex;align-items:center;gap:8px}
#seek{accent-color:var(--blue);width:120px;max-width:20vw;cursor:pointer;height:24px;margin:0}
#time{font-size:11px;font-variant-numeric:tabular-nums;min-width:33px;color:#626b78}
.toolbar.playing{gap:4px}
dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100svh - 40px);border:1px solid #e0e6ef;border-radius:20px;padding:28px;color:var(--ink);box-shadow:0 20px 100px #0e1e442b;background:#fff}
dialog::backdrop{background:#101b3d45;backdrop-filter:blur(6px)}
.index-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:.14em;color:#8b94a4;margin:0 0 10px}
h1{font-size:36px;font-weight:700;letter-spacing:-.04em;color:var(--blue);margin:0}
.index-links{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
.index-link{display:flex;gap:12px;align-items:center;padding:15px 8px;text-decoration:none;color:var(--ink);border-bottom:1px solid #edf0f5;border-radius:4px;font-size:13px;line-height:1.4}
.index-link:hover{color:var(--blue);background:#f7f9ff}
.index-link .index-number{font-size:10px;color:#909aab;font-variant-numeric:tabular-nums;min-width:18px}
.index-symbol{display:inline-flex;align-items:center;justify-content:center}
.index-symbol svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.index-footer{display:flex;justify-content:space-between;gap:20px;margin-top:28px;font-size:11px;line-height:1.6;color:#8490a0}
.index-footer a{color:var(--blue);text-decoration:none;white-space:nowrap}
.no-script{padding:40px;max-width:600px;margin:auto;line-height:1.7}
@keyframes spin{to{transform:rotate(360deg)}}
@media(orientation:portrait){body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.portfolio-section{min-height:0;padding:0;display:block;margin:0 0 14px}.canvas{width:100%}.toolbar{gap:5px}.contact-shortcut{padding:0 7px}.player .play-button{width:32px;height:32px}.index-button{padding:0 8px}.index-links{grid-template-columns:1fr 1fr}dialog{padding:20px}.index-link{font-size:12px}.index-footer{display:block}.index-footer a{display:inline-block;margin-top:8px}#seek{width:86px;max-width:20vw}.toolbar.playing .index-button span{display:none}.toolbar.playing{gap:3px}}
@media(orientation:landscape) and (max-height:500px){:root{--toolbar-height:52px}.portfolio-section{padding-top:4px;padding-bottom:var(--toolbar-height)}.canvas{width:min(100%,calc((100svh - var(--toolbar-height) - 8px) * 16 / 9))}.toolbar{bottom:calc(5px + env(safe-area-inset-bottom,0px));height:40px}.play-button{width:32px;height:32px}dialog{max-height:calc(100svh - 16px);padding:20px}.index-header{margin-bottom:12px}.index-link{padding:9px 8px}.index-footer{margin-top:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
