:root{--bg-page:#0e1a14;--bg-stage:#14241c;--surface:#1d3328;--text:#eef5f0;--text-dim:#9bb3a6;--accent:#4da3ff;--ok:#3ddc84;--warn:#ffc53d;--danger:#ff6b6b;--overlay:#08100cd1;--overlay-solid:#08100cf7;--tile-history:#8a5a2b;--tile-amphibians:#2f7d4a;--tile-fish:#2b6a8a;--tile-video:#6a3f8a;--bubble-1:#3d8bd4;--bubble-2:#d4853d;--bubble-3:#9a5bd4;--bubble-4:#d44f7a;--bubble-5:#3db8a8;--bubble-6:#c4b13a;--sp-1:8px;--sp-2:16px;--sp-3:24px;--sp-4:40px;--sp-5:64px;--fs-small:22px;--fs-body:30px;--fs-lead:38px;--fs-h2:52px;--fs-h1:72px;--touch-min:90px;--touch-lg:140px;--bottom-bar-h:200px;--radius:20px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{overscroll-behavior:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;height:100%;margin:0;overflow:hidden}body{color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.stage-wrap{background:var(--bg-page);position:fixed;top:0;bottom:0;left:0;right:0}.stage{width:var(--stage-w);height:var(--stage-h);transform-origin:0 0;background:var(--bg-stage);position:absolute;top:0;left:0;overflow:hidden}.spinner{gap:var(--sp-3);display:flex}.spinner span{width:var(--sp-4);height:var(--sp-4);background:var(--accent);border-radius:50%;animation:1.2s ease-in-out infinite spinner-pulse}.spinner span:nth-child(2){animation-delay:.2s}.spinner span:nth-child(3){animation-delay:.4s}@keyframes spinner-pulse{0%,to{opacity:.4;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}.attract{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.attract__head{top:calc(var(--safe-top) + var(--sp-5));left:var(--safe-side);right:var(--safe-side);text-align:center;position:absolute}.attract__title{font-size:var(--fs-h1);margin:0}.attract__subtitle{margin:var(--sp-2) 0 0;font-size:var(--fs-lead);color:var(--text-dim)}.attract__bubbles span{width:var(--sp-5);height:var(--sp-5);border:4px solid var(--accent);opacity:0;border-radius:50%;animation:9s linear infinite attract-bubble;position:absolute;bottom:0}.attract__bubbles span:first-child{animation-delay:0s;left:8%}.attract__bubbles span:nth-child(2){animation-delay:3.5s;left:22%}.attract__bubbles span:nth-child(3){animation-delay:6s;left:37%}.attract__bubbles span:nth-child(4){animation-delay:1.5s;left:51%}.attract__bubbles span:nth-child(5){animation-delay:5s;left:64%}.attract__bubbles span:nth-child(6){animation-delay:2.5s;left:76%}.attract__bubbles span:nth-child(7){animation-delay:7s;left:88%}.attract__bubbles span:nth-child(8){animation-delay:8s;left:45%}@keyframes attract-bubble{0%{opacity:0;transform:translateY(0)scale(.5)}10%{opacity:.6}to{transform:translateY(calc(-1 * var(--stage-h))) scale(1.2);opacity:0}}.attract__prompt{left:0;right:0;bottom:calc(var(--safe-bottom) + var(--sp-5) * 3);flex-direction:column;align-items:center;display:flex;position:absolute}.attract__ripple{width:calc(var(--touch-lg) * 1.6);height:calc(var(--touch-lg) * 1.6);background:var(--accent);border-radius:50%;animation:2s ease-out infinite attract-ripple;position:absolute;top:0}.attract__hand{width:calc(var(--touch-lg) * 1.6);height:calc(var(--touch-lg) * 1.6);padding:var(--sp-4);color:var(--text);animation:2s ease-in-out infinite attract-tap;position:relative}.attract__hand svg{width:100%;height:100%}.attract__prompt-text{margin:var(--sp-4) 0 0;font-size:var(--fs-h2);font-weight:700;animation:2s ease-in-out infinite attract-breathe}@keyframes attract-ripple{0%{opacity:.6;transform:scale(.5)}to{opacity:0;transform:scale(1.4)}}@keyframes attract-tap{0%,to{transform:translateY(0)}40%{transform:translateY(-20px)}55%{transform:translateY(6px)scale(.95)}}@keyframes attract-breathe{0%,to{opacity:.7}50%{opacity:1}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-width:var(--touch-min);min-height:var(--touch-min);padding:0 var(--sp-4);border-radius:var(--radius);font:inherit;font-size:var(--fs-lead);color:var(--text);touch-action:manipulation;border:0;font-weight:700;transition:transform 80ms ease-out,opacity 80ms ease-out;display:inline-flex}.btn:active{opacity:.85;transform:scale(.94)}.btn--primary{background:var(--accent)}.btn--secondary{background:var(--surface)}.btn--icon{width:var(--touch-lg);height:var(--touch-lg);background:var(--surface);border-radius:50%;padding:0}.btn--icon svg{width:60%;height:60%}.bottom-bar{z-index:50;height:var(--bottom-bar-h);padding:0 var(--safe-side) var(--sp-2);justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.diag{z-index:300;overscroll-behavior:contain;padding:var(--sp-4) var(--sp-4) calc(var(--sp-5) * 2);background:var(--bg-page);font-family:ui-monospace,monospace;font-size:var(--fs-small);-webkit-user-select:text;-moz-user-select:text;user-select:text;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.diag__top{top:calc(-1 * var(--sp-4));z-index:1;margin:calc(-1 * var(--sp-4)) calc(-1 * var(--sp-4)) 0;padding:var(--sp-3) var(--sp-4);background:var(--bg-page);border-bottom:2px solid var(--surface);justify-content:space-between;align-items:center;display:flex;position:-webkit-sticky;position:sticky}.diag h1{font-size:var(--fs-h2);margin:0}.diag h2{font-size:var(--fs-lead);margin:var(--sp-5) 0 var(--sp-2);color:var(--accent)}.diag h3{font-size:var(--fs-body);margin:var(--sp-4) 0 var(--sp-2)}.diag .btn{font-size:var(--fs-body);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.diag dl{gap:var(--sp-1) var(--sp-3);margin:0 0 var(--sp-3);grid-template-columns:max-content 1fr;display:grid}.diag dt{color:var(--text-dim)}.diag dd{margin:0}.diag__wrap{word-break:break-all}.diag__dim{color:var(--text-dim);margin:0 0 var(--sp-2)}.diag__bad{color:var(--danger);font-weight:700}.diag table{border-collapse:collapse;width:100%}.diag th,.diag td{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--surface);text-align:left}.diag__stats td:not(:first-child),.diag__stats th:not(:first-child){text-align:right}.diag__source--snapshot td:nth-child(2){color:var(--warn)}.diag__source--none td:nth-child(2){color:var(--danger)}.diag__issues,.diag__log{padding-left:var(--sp-3)}.diag__issues li,.diag__log li{margin-bottom:var(--sp-1)}.diag__issue--error b{color:var(--danger)}.diag__issue--warning b{color:var(--warn)}.diag__log span{color:var(--text-dim)}.diag__log--crash b,.diag__log--error b{color:var(--danger)}.diag__log--content b{color:var(--warn)}.diag__log--start b{color:var(--ok)}.diag__csv{width:100%;height:200px;margin:var(--sp-3) 0 var(--sp-2);padding:var(--sp-2);border-radius:var(--sp-1);background:var(--surface);color:var(--text);font:inherit;border:0}.diag__row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.preparing{justify-content:center;align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);text-align:center;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.preparing__dot{width:var(--touch-min);height:var(--touch-min);background:var(--accent);border-radius:50%;animation:2.4s ease-in-out infinite preparing-pulse}.preparing__title{font-size:var(--fs-h2);margin:0}.preparing__subtitle{font-size:var(--fs-lead);color:var(--text-dim);margin:0}@keyframes preparing-pulse{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.fps-badge{top:var(--sp-2);right:var(--sp-2);z-index:400;padding:var(--sp-1) var(--sp-2);border-radius:var(--sp-1);background:var(--overlay);color:var(--ok);font-family:ui-monospace,monospace;font-size:var(--fs-small);pointer-events:none;position:absolute}.fps-badge[data-bad="1"]{color:var(--danger)}.modal{z-index:100;padding:0 var(--safe-side) calc(var(--bottom-bar-h) + var(--sp-4));background:var(--overlay);justify-content:center;align-items:flex-end;animation:.2s ease-out modal-in;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.modal__panel{width:100%;padding:var(--sp-5) var(--sp-4);border-radius:var(--radius);background:var(--surface);text-align:center;animation:.24s ease-out modal-panel-in}@keyframes modal-in{0%{opacity:0}}@keyframes modal-panel-in{0%{opacity:0;transform:translateY(60px)}}.idle__count{font-size:calc(var(--fs-h1) * 2);color:var(--accent);margin:0;font-weight:700;animation:1s ease-out idle-tick}.idle__question{margin:var(--sp-2) 0 0;font-size:var(--fs-h1)}.idle__hint{margin:var(--sp-2) 0 var(--sp-5);font-size:var(--fs-lead);color:var(--text-dim)}.idle__continue{min-height:var(--touch-lg);padding:0 var(--sp-5);font-size:var(--fs-h2)}@keyframes idle-tick{0%{opacity:.4;transform:scale(1.3)}}.menu{animation:.24s ease-out screen-in;position:absolute;top:0;bottom:0;left:0;right:0}.menu__title{top:calc(var(--safe-top) + var(--sp-5) * 2);left:var(--safe-side);right:var(--safe-side);text-align:center;font-size:var(--fs-h1);margin:0;position:absolute}.menu__tiles{top:calc(var(--reach-top) + var(--sp-4));bottom:calc(var(--bottom-bar-h) + var(--sp-4));left:var(--safe-side);right:var(--safe-side);gap:var(--sp-4);grid-template-columns:1fr 1fr;grid-auto-rows:1fr;display:grid;position:absolute}.menu__tiles--1{grid-template-columns:1fr}.menu__tiles--3 .menu__tile:first-child{grid-column:span 2}.menu__tile{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:calc(var(--radius) * 2);font:inherit;color:var(--text);touch-action:manipulation;border:0;flex-direction:column;transition:transform 80ms ease-out;display:flex}.menu__tile:active{transform:scale(.96)}.menu__tile--history{background:var(--tile-history)}.menu__tile--amphibians{background:var(--tile-amphibians)}.menu__tile--fish{background:var(--tile-fish)}.menu__tile--video{background:var(--tile-video)}.menu__tile-title{font-size:var(--fs-h2);font-weight:700}.menu__tile-subtitle{font-size:var(--fs-body);opacity:.85}@keyframes screen-in{0%{opacity:0}}.result__stars{justify-content:center;gap:var(--sp-3);font-size:calc(var(--fs-h1) * 1.4);color:var(--warn);display:flex}.result__stars span{animation:.6s ease-out backwards result-star}.result__stars span:nth-child(2){animation-delay:.15s}.result__stars span:nth-child(3){animation-delay:.3s}@keyframes result-star{0%{opacity:0;transform:scale(0)rotate(-90deg)}70%{opacity:1;transform:scale(1.3)rotate(10deg)}}.result__title{margin:var(--sp-2) 0 0;font-size:var(--fs-h1)}.result__text{margin:var(--sp-2) 0 var(--sp-5);font-size:var(--fs-lead);color:var(--text-dim)}.result__actions{justify-content:center;gap:var(--sp-4);display:flex}.result__action{min-height:var(--touch-lg);padding:0 var(--sp-4)}.result__action.btn--secondary{background:var(--bg-stage)}.amph{--tray-h:420px;--bubble-size:160px;animation:.24s ease-out screen-in;position:absolute;top:0;bottom:0;left:0;right:0}.amph__head{top:calc(var(--safe-top) + var(--sp-4));left:var(--safe-side);right:var(--safe-side);height:calc(var(--reach-top) - var(--safe-top) - var(--sp-4));text-align:center;position:absolute}.amph__head h1{margin:0 0 var(--sp-3);font-size:var(--fs-h1)}.amph__msg{font-size:var(--fs-lead);margin:0;animation:.3s ease-out screen-in}.amph__msg--dim{margin-top:var(--sp-2);color:var(--text-dim)}.amph__fact{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:var(--surface);animation:.32s ease-out amph-fact-in}.amph__fact-name{font-size:var(--fs-h2);color:var(--ok);margin:0;font-weight:700}.amph__fact-name i{font-weight:400;font-size:var(--fs-body);color:var(--text-dim)}.amph__fact-text{margin:var(--sp-2) 0 0;font-size:var(--fs-lead);line-height:1.35}@keyframes amph-fact-in{0%{opacity:0;transform:translateY(20px)scale(.97)}}.amph__targets{top:calc(var(--reach-top) + var(--sp-3));bottom:calc(var(--bottom-bar-h) + var(--tray-h));left:var(--safe-side);right:var(--safe-side);gap:var(--sp-3);grid-auto-rows:1fr;display:grid;position:absolute}.amph__targets--2{grid-template-columns:repeat(2,1fr)}.amph__targets--3{grid-template-columns:repeat(3,1fr)}.amph__target{align-items:center;gap:var(--sp-1);min-height:0;padding:var(--sp-2);border-radius:var(--radius);background:var(--surface);border:6px solid #0000;flex-direction:column;transition:border-color .2s ease-out;display:flex;position:relative}.amph__target img{object-fit:contain;pointer-events:none;flex:1;width:100%;min-height:0}.amph__target-name{font-size:var(--fs-body);font-weight:700}.amph__target--matched{border-color:var(--ok);animation:.4s ease-out amph-pop}.amph__target--wiggle{animation:.5s ease-in-out amph-wiggle}.amph__badge{top:calc(-1 * var(--sp-2));right:calc(-1 * var(--sp-2));width:var(--sp-5);height:var(--sp-5);border:4px solid var(--ok);border-radius:50%;animation:.4s ease-out amph-pop;position:absolute}.amph__badge--1{background:var(--bubble-1)}.amph__badge--2{background:var(--bubble-2)}.amph__badge--3{background:var(--bubble-3)}.amph__badge--4{background:var(--bubble-4)}.amph__badge--5{background:var(--bubble-5)}.amph__badge--6{background:var(--bubble-6)}@keyframes amph-pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes amph-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.amph__tray{bottom:var(--bottom-bar-h);left:var(--safe-side);right:var(--safe-side);height:var(--tray-h);align-content:center;justify-items:center;row-gap:var(--sp-4);display:grid;position:absolute}.amph__tray--2{grid-template-columns:repeat(2,1fr)}.amph__tray--3{grid-template-columns:repeat(3,1fr)}.amph__slot{width:var(--bubble-size);height:var(--bubble-size)}.bubble{background:var(--bubble-color);width:100%;height:100%;color:var(--text);touch-action:none;border-radius:50%;justify-content:center;align-items:center;transition:scale .12s ease-out;display:flex;position:relative}.bubble svg{pointer-events:none;width:55%;height:55%}.bubble:active,.bubble[data-dragging]{scale:1.12}.bubble[data-dragging]{z-index:30;will-change:transform}.bubble--playing:after{content:"";border:6px solid var(--bubble-color);pointer-events:none;border-radius:50%;animation:1s ease-out infinite bubble-ring;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes bubble-ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.fish{--tray-h:520px;animation:.24s ease-out screen-in;position:absolute;top:0;bottom:0;left:0;right:0}.fish__head{top:calc(var(--safe-top) + var(--sp-4));left:var(--safe-side);right:var(--safe-side);text-align:center;position:absolute}.fish__head h1{margin:0 0 var(--sp-3);font-size:var(--fs-h1)}.fish__msg{font-size:var(--fs-lead);margin:0;animation:.3s ease-out screen-in}.fish__msg--ok{color:var(--ok);font-weight:700}.fish__hint{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-lead);line-height:1.35;animation:.32s ease-out fish-pop-in}.fish__hint b{color:var(--warn)}@keyframes fish-pop-in{0%{opacity:0;transform:translateY(20px)scale(.97)}}.fish__bins{top:calc(var(--reach-top) + var(--sp-3));bottom:calc(var(--bottom-bar-h) + var(--tray-h));left:var(--safe-side);right:var(--safe-side);gap:var(--sp-3);grid-auto-rows:1fr;display:grid;position:absolute}.fish__bins--1{grid-template-columns:1fr}.fish__bins--2{grid-template-columns:repeat(2,1fr)}.fish__bins--3{grid-template-columns:repeat(3,1fr)}.fish__bin{align-items:center;gap:var(--sp-1);min-height:0;padding:var(--sp-3) var(--sp-2);border:6px dashed var(--tile-fish);border-radius:calc(var(--radius) * 1.5);background:var(--surface);text-align:center;flex-direction:column;display:flex;position:relative}.fish__bin-icon{object-fit:contain;pointer-events:none;width:120px;height:120px}.fish__bin-name{font-size:var(--fs-body);font-weight:700}.fish__bin-count{font-size:var(--fs-h2);color:var(--ok);font-weight:700;animation:.4s ease-out fish-count}@keyframes fish-count{0%{transform:scale(1)}40%{transform:scale(1.4)}}.fish__chips{place-content:flex-start center;gap:var(--sp-1);flex-wrap:wrap;min-height:0;display:flex;overflow:hidden}.fish__chip{object-fit:cover;border-radius:var(--sp-1);width:88px;height:56px;animation:.36s ease-out fish-chip-in}@keyframes fish-chip-in{0%{opacity:0;transform:translateY(-60px)scale(1.6)}}.fish__more{font-size:var(--fs-body);color:var(--text-dim);align-self:center}.fish__bin--wiggle{animation:.5s ease-in-out fish-wiggle}@keyframes fish-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}.fish__tray{bottom:var(--bottom-bar-h);left:var(--safe-side);right:var(--safe-side);height:var(--tray-h);justify-content:center;align-items:center;gap:var(--sp-3);--card-w:480px;--card-h:360px;flex-direction:column;display:flex;position:absolute}.fish__stack{width:var(--card-w);height:var(--card-h);margin:calc(var(--card-h) / -2 - var(--sp-4)) 0 0 calc(var(--card-w) / -2);position:absolute;top:50%;left:50%}.fish__stack span{border-radius:var(--radius);background:var(--surface);opacity:.6;position:absolute;top:0;bottom:0;left:0;right:0}.fish__stack span:first-child{transform:translate(16px,-12px)rotate(3deg)}.fish__stack span:nth-child(2){opacity:.4;transform:translate(28px,-22px)rotate(6deg)}.fish__stack span:nth-child(3){opacity:.2;transform:translate(40px,-32px)rotate(9deg)}.fish__enter{animation:.42s cubic-bezier(.3,1.3,.5,1) fish-enter;position:relative}@keyframes fish-enter{0%{opacity:0;transform:translate(60px,-40px)rotate(8deg)scale(.9)}}.fish-card{width:var(--card-w);height:var(--card-h);justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--radius);background:var(--tile-fish);touch-action:none;flex-direction:column;transition:scale .12s ease-out;display:flex;position:relative}.fish-card img{object-fit:contain;pointer-events:none;flex:1;width:100%;min-height:0}.fish-card__name{font-size:var(--fs-lead);font-weight:700}.fish-card:active,.fish-card[data-dragging]{scale:1.05}.fish-card[data-dragging]{z-index:30;will-change:transform}.fish__remaining{font-size:var(--fs-body);color:var(--text-dim);margin:0}.viewer{z-index:20;padding:var(--safe-top) var(--safe-side) calc(var(--bottom-bar-h) + var(--touch-lg) + var(--sp-4) * 2);background:var(--overlay-solid);flex-direction:column;justify-content:center;align-items:center;animation:.2s ease-out modal-in;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.viewer__img{object-fit:contain;border-radius:var(--radius);flex:0 auto;max-width:100%;min-height:0;animation:.22s ease-out viewer-zoom}@keyframes viewer-zoom{0%{opacity:0;transform:scale(.9)}}.viewer__caption{margin-top:var(--sp-3);text-align:center;font-size:var(--fs-lead)}.viewer__caption p{margin:0}.viewer__caption .viewer__source{margin-top:var(--sp-1);font-size:var(--fs-body);color:var(--text-dim)}.viewer__close{left:0;right:0;bottom:calc(var(--bottom-bar-h) + var(--sp-3));justify-content:center;display:flex;position:absolute}.narration{align-items:center;gap:var(--sp-3);flex:1;min-width:0;display:flex}.narration__play{background:var(--tile-history)}.narration__track{min-width:0;height:var(--touch-lg);justify-content:center;gap:var(--sp-2);touch-action:none;flex-direction:column;flex:1;display:flex}.narration__bar{height:var(--sp-3);border-radius:var(--sp-3);background:var(--surface);overflow:hidden}.narration__fill{background:var(--tile-history);transform-origin:0 0;height:100%;transform:scaleX(0)}.narration__time{font-size:var(--fs-body);color:var(--text-dim);font-variant-numeric:tabular-nums}.detail{z-index:10;background:var(--bg-stage);--controls-h:180px;animation:.22s ease-out detail-in;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes detail-in{0%{opacity:0;transform:translateY(80px)}}.detail__head{height:var(--reach-top);position:absolute;top:0;left:0;right:0;overflow:hidden}.detail__hero{object-fit:cover;opacity:.45;width:100%;height:100%}.detail__heading{left:var(--safe-side);right:var(--safe-side);bottom:var(--sp-4);text-shadow:0 2px 12px var(--bg-stage);position:absolute}.detail__year{font-size:var(--fs-h2);color:var(--tile-history);margin:0;font-weight:700}.detail__title{margin:var(--sp-1) 0 0;font-size:var(--fs-h1);line-height:1.1}.detail__scroller{top:var(--reach-top);bottom:calc(var(--bottom-bar-h) + var(--controls-h));padding:var(--sp-4) var(--safe-side) var(--sp-5);overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none;position:absolute;left:0;right:0;overflow-y:auto}.detail__scroller::-webkit-scrollbar{display:none}.detail__images{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.detail__images:has(>:only-child){grid-template-columns:1fr}.detail__thumb{border-radius:var(--radius);background:var(--surface);border:0;height:300px;padding:0;transition:transform 80ms ease-out;overflow:hidden}.detail__thumb:active{transform:scale(.97)}.detail__thumb img{object-fit:cover;width:100%;height:100%}.detail__body{font-size:var(--fs-lead);line-height:1.45}.detail__body p,.detail__body ul,.detail__body ol{margin:0 0 var(--sp-3)}.detail__body h1,.detail__body h2,.detail__body h3{font-size:var(--fs-h2);margin:var(--sp-4) 0 var(--sp-2)}.detail__body strong{color:var(--tile-history)}.detail__controls{left:var(--safe-side);right:var(--safe-side);bottom:var(--bottom-bar-h);height:var(--controls-h);align-items:center;gap:var(--sp-3);display:flex;position:absolute}.timeline{--line-x:150px;--dot:48px;animation:.24s ease-out screen-in;position:absolute;top:0;bottom:0;left:0;right:0}.timeline__head{top:calc(var(--safe-top) + var(--sp-5));left:var(--safe-side);right:var(--safe-side);text-align:center;position:absolute}.timeline__head h1{font-size:var(--fs-h1);margin:0}.timeline__range{margin:var(--sp-2) 0 0;font-size:var(--fs-h2);color:var(--tile-history);font-weight:700}.timeline__hint{margin:var(--sp-3) 0 0;font-size:var(--fs-lead);color:var(--text-dim)}.timeline__scroller{top:var(--reach-top);bottom:var(--bottom-bar-h);overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none;position:absolute;left:0;right:0;overflow-y:auto}.timeline__scroller::-webkit-scrollbar{display:none}.timeline__list{padding:var(--sp-5) var(--safe-side) calc(var(--sp-5) * 2);margin:0;list-style:none;position:relative}.timeline__list:before{content:"";top:0;bottom:0;left:calc(var(--line-x) - 3px);background:var(--surface);width:6px;position:absolute}.timeline__item{align-items:center;gap:var(--sp-4);width:100%;min-height:180px;margin-bottom:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-3) calc(var(--line-x) - var(--safe-side) - var(--dot) / 2);border-radius:var(--radius);font:inherit;color:var(--text);text-align:left;background:0 0;border:0;transition:transform 80ms ease-out;display:flex}.timeline__item:active{transform:scale(.97)}.timeline__dot{width:var(--dot);height:var(--dot);border:6px solid var(--tile-history);background:var(--bg-stage);border-radius:50%;flex:none;position:relative}.timeline__item--visited .timeline__dot{background:var(--tile-history)}.timeline__text{gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:var(--surface);flex-direction:column;flex:1;display:flex}.timeline__year{font-size:var(--fs-h2);color:var(--tile-history);font-weight:700}.timeline__title{font-size:var(--fs-lead)}.timeline__fade{height:var(--sp-5);pointer-events:none;position:absolute;left:0;right:0}.timeline__fade--top{top:var(--reach-top);background:linear-gradient(var(--bg-stage), transparent)}.timeline__fade--bottom{bottom:var(--bottom-bar-h);background:linear-gradient(transparent, var(--bg-stage))}.vlist{animation:.24s ease-out screen-in;position:absolute;top:0;bottom:0;left:0;right:0}.vlist__head{top:calc(var(--safe-top) + var(--sp-5));left:var(--safe-side);right:var(--safe-side);text-align:center;position:absolute}.vlist__head h1{font-size:var(--fs-h1);margin:0}.vlist__head p{margin:var(--sp-3) 0 0;font-size:var(--fs-lead);color:var(--text-dim)}.vlist__scroller{top:var(--reach-top);bottom:var(--bottom-bar-h);padding:var(--sp-4) var(--safe-side);overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none;position:absolute;left:0;right:0;overflow-y:auto}.vlist__scroller::-webkit-scrollbar{display:none}.vlist__grid{gap:var(--sp-4) var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}.vlist__grid--single{grid-template-columns:1fr}.vlist__tile{gap:var(--sp-1);font:inherit;color:var(--text);text-align:left;background:0 0;border:0;flex-direction:column;padding:0;transition:transform 80ms ease-out;display:flex}.vlist__tile:active{transform:scale(.97)}.vlist__thumb{aspect-ratio:16/9;border-radius:var(--radius);background:var(--surface);display:block;position:relative;overflow:hidden}.vlist__thumb img{object-fit:cover;width:100%;height:100%}.vlist__play{width:var(--touch-min);height:var(--touch-min);margin:calc(var(--touch-min) / -2) 0 0 calc(var(--touch-min) / -2);padding:var(--sp-3);background:var(--overlay);color:var(--text);border-radius:50%;position:absolute;top:50%;left:50%}.vlist__play svg{width:100%;height:100%}.vlist__duration{right:var(--sp-2);bottom:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--sp-1);background:var(--overlay);font-size:var(--fs-body);font-variant-numeric:tabular-nums;position:absolute}.vlist__title{margin-top:var(--sp-1);font-size:var(--fs-lead);font-weight:700}.vlist__desc{font-size:var(--fs-body);color:var(--text-dim)}.slider{height:var(--touch-lg);touch-action:none;--slider-color:var(--accent);--knob:56px;align-items:center;display:flex;position:relative}.slider__track{width:100%;height:var(--sp-3);border-radius:var(--sp-3);background:var(--surface);overflow:hidden}.slider__fill{background:var(--slider-color);transform-origin:0 0;height:100%;transform:scaleX(0)}.slider__knob-rail{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.slider__knob-pos{align-items:center;width:100%;height:100%;display:flex}.slider__knob{width:var(--knob);height:var(--knob);margin-left:calc(var(--knob) / -2);background:var(--text);box-shadow:0 2px 8px var(--bg-page);border-radius:50%}.vplayer{background:var(--bg-page);animation:.2s ease-out screen-in;position:absolute;top:0;bottom:0;left:0;right:0}.vplayer__head{top:calc(var(--safe-top) + var(--sp-5));left:var(--safe-side);right:var(--safe-side);text-align:center;position:absolute}.vplayer__head h1{font-size:var(--fs-h1);margin:0}.vplayer__head p{margin:var(--sp-3) 0 0;font-size:var(--fs-lead);color:var(--text-dim)}.vplayer__frame{top:var(--reach-top);aspect-ratio:16/9;background:var(--bg-page);position:absolute;left:0;right:0}.vplayer__video{object-fit:contain;pointer-events:none;width:100%;height:100%}.vplayer__video::cue{font-size:var(--fs-lead);color:var(--text);background:var(--overlay);line-height:1.3}.vplayer__overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.vplayer__overlay--play svg{width:calc(var(--touch-lg) * 1.2);height:calc(var(--touch-lg) * 1.2);padding:var(--sp-4);background:var(--overlay);color:var(--text);border-radius:50%}.vplayer__error{padding:var(--sp-4);font-size:var(--fs-lead);text-align:center;background:var(--overlay)}.vplayer__controls{left:var(--safe-side);right:var(--safe-side);bottom:var(--bottom-bar-h);gap:var(--sp-2);padding-bottom:var(--sp-3);flex-direction:column;display:flex;position:absolute}.vplayer__scrub{flex-direction:column;display:flex}.vplayer__scrubber{--slider-color:var(--tile-video)}.vplayer__time{margin-top:calc(-1 * var(--sp-3));font-size:var(--fs-body);color:var(--text-dim);font-variant-numeric:tabular-nums}.vplayer__buttons{align-items:center;gap:var(--sp-3);display:flex}.vplayer__play{width:calc(var(--touch-lg) * 1.15);height:calc(var(--touch-lg) * 1.15);background:var(--tile-video)}.vplayer__cc--on{background:var(--tile-video)}.vplayer__volume{align-items:center;gap:var(--sp-3);min-width:0;padding-left:var(--sp-2);flex:1;display:flex}.vplayer__volume>svg{width:var(--sp-5);height:var(--sp-5);color:var(--text-dim);flex:none}.vplayer__volume .slider{flex:1}.app__center{justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}
