@keyframes blink{0%,to{opacity:1}50%{opacity:.1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes chipIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes rFadeIn{0%{opacity:0}to{opacity:1}}@keyframes rPop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes cardIn{0%{opacity:0;transform:scale(.93) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}:root{--accent: #ffd43b;--accent-rgb: 255, 212, 59;--accent-dim: #d1ab20;--bg: #061428;--bg-alt: #04101e;--panel: #0d2040;--panel-rgb: 13, 32, 64;--navy-mid: #0d1f3c;--border: #1a3a60;--border-hi: rgba(255, 255, 255, .08);--dim: #3a608a;--red: #ff3c3c;--green: #22c55e;--blue: #3b82f6;--text: #ffffff;--text-mid: rgba(255, 255, 255, .7);--text-dim: rgba(255, 255, 255, .42);--input-rgb: 4, 14, 32;--font-display: "Barlow Condensed", sans-serif;--font-heading: "Bebas Neue", sans-serif;--font-mono: "Space Mono", monospace;--tr: .22s cubic-bezier(.4, 0, .2, 1)}:root{--vh-100-safe: 100vh}@supports (height: 100dvh){:root{--vh-100-safe: 100dvh}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;touch-action:manipulation}body{background:var(--bg);color:var(--text);font-family:Barlow Condensed,sans-serif;height:var(--vh-100-safe);overflow:hidden}.app{position:relative;z-index:2;width:100%;height:var(--vh-100-safe);display:flex;flex-direction:column;opacity:0;transition:opacity .15s ease}.app.ready{opacity:1}.stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding-top:max(var(--gap),env(safe-area-inset-top));padding-right:max(var(--gap),env(safe-area-inset-right));padding-bottom:max(var(--gap),env(safe-area-inset-bottom));padding-left:max(var(--gap),env(safe-area-inset-left))}.status-bar{display:flex;align-items:center;gap:8px;font-size:clamp(11px,1.3vw,15px);font-weight:600;letter-spacing:.36em;text-transform:uppercase;color:var(--text-dim)}.status-dot{width:clamp(8px,.8vw,11px);height:clamp(8px,.8vw,11px);border-radius:50%;background:var(--border);flex-shrink:0;transition:background .3s,box-shadow .3s;margin-right:5px}.status-dot.running{background:var(--accent);box-shadow:0 0 8px var(--accent),0 0 16px rgba(var(--accent-rgb),.35);animation:blink 1.1s infinite}.status-dot.done{background:var(--red);box-shadow:0 0 8px var(--red)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.am-modal{max-height:88vh;max-height:min(calc(var(--vh-100-safe) * .88),88vh)}:root{--panel-rgb: 13, 32, 64;--border-hi: #2a5282;--text-dim: rgba(255, 255, 255, .42);--bar-h: clamp(58px, 10.5vh, 120px);--laps-w: clamp(200px, 22vw, 340px);--gap: clamp(6px, .9vw, 14px);--digit-w: 1ch;--sep-w: .5ch;--dot-w: .4ch;--group-gap: 0px}html{-webkit-tap-highlight-color:transparent}.stage{position:relative;padding:calc(var(--gap) + env(safe-area-inset-top)) max(var(--gap),env(safe-area-inset-right)) max(var(--gap),env(safe-area-inset-bottom)) max(var(--gap),env(safe-area-inset-left))}.stage-help-btn{position:absolute;top:calc(var(--gap) + env(safe-area-inset-top) + 8px);right:calc(max(var(--gap),env(safe-area-inset-right)) + 8px);width:34px;height:34px;padding:0;background:var(--navy-mid, #112548);border:1px solid var(--border);border-radius:var(--radius, 8px);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-size:15px;font-weight:700;font-family:Barlow,sans-serif;transition:border-color .15s,background .15s,color .15s,transform .12s;flex-shrink:0;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10}.stage-help-btn:hover{border-color:var(--border-hi, #2a5282);background:#ffffff14;color:#fff;transform:translateY(-1px)}.stage-help-btn:active{transform:translateY(0)}.stage-help-btn:focus-visible{outline:2px solid rgba(255,212,59,.6);outline-offset:2px}.stage-help-btn i{font-size:15px}.chrono-layout{width:min(96vw,1650px);height:min(100%,850px);max-height:100%;display:grid;grid-template-columns:1fr var(--laps-w);grid-template-rows:minmax(0,1fr) var(--bar-h);gap:var(--gap)}.chrono-timer-cell{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:clamp(10px,1.2vw,18px);background:rgba(var(--panel-rgb),.6);border:1px solid var(--border);border-top-color:var(--border-hi);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 0 0 1px #ffffff08 inset,0 4px 24px #00000059;padding:clamp(6px,1.5vh,18px) clamp(8px,1.5vw,20px);gap:clamp(4px,.8vh,10px);overflow:hidden;min-height:0}.chrono-timer-wrap{flex:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;min-width:0;min-height:0}#time{font-family:Teko,sans-serif;font-weight:700;font-size:12vw;line-height:1;letter-spacing:.02em;color:var(--text);-webkit-user-select:none;user-select:none;white-space:nowrap;display:flex;align-items:center;justify-content:center;text-shadow:0 3px 0 rgba(0,0,0,.7);transition:color .25s}.chrono-digit,.chrono-sep,.chrono-dot{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:inherit;font-weight:inherit;font-variant-numeric:tabular-nums;line-height:1;overflow:visible}.chrono-digit{width:var(--digit-w)}.chrono-sep{width:var(--sep-w);transform:translate(-.04em)}.chrono-dot{width:var(--dot-w);transform:translate(-.04em)}.chrono-gap{display:inline-block;width:var(--group-gap, 0px);flex-shrink:0}.chrono-status-row{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%}.chrono-laps-panel{grid-column:2;grid-row:1 / 3;display:flex;flex-direction:column;border-radius:clamp(10px,1.2vw,18px);background:rgba(var(--panel-rgb),.75);border:1px solid var(--border);border-top-color:var(--border-hi);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 0 0 1px #ffffff08 inset,0 4px 24px #00000059;overflow:hidden;min-height:0}.laps-panel-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:clamp(11px,1.5vh,18px) clamp(14px,1.3vw,20px);border-bottom:1px solid rgba(255,255,255,.08);background:rgba(var(--panel-rgb),.9)}.laps-panel-identity{display:flex;align-items:center;gap:8px}.laps-panel-icon{color:var(--gold, #ffd43b);font-size:clamp(13px,1.3vw,17px)}.laps-panel-title{font-family:Barlow Condensed,sans-serif;font-size:clamp(13px,1.2vw,17px);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--text)}.laps-count-badge{font-family:Teko,sans-serif;font-weight:700;font-size:clamp(18px,1.8vw,26px);color:var(--accent);letter-spacing:.04em;line-height:1}.laps-panel-body{position:relative;flex:1;min-height:0;display:flex;overflow:hidden}.laps-nav-btn{display:none}.laps-panel-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.25) transparent}.laps-panel-list::-webkit-scrollbar{width:4px}.laps-panel-list::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.22);border-radius:4px}.laps-panel-list::-webkit-scrollbar-track{background:transparent}.lap-row{flex-shrink:0;display:flex;align-items:center;padding:clamp(7px,1.1vh,13px) clamp(12px,1.2vw,18px);gap:clamp(8px,1vw,14px);border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s;animation:lapIn .2s cubic-bezier(.34,1.4,.64,1)}.lap-row.is-restored{animation:none}.lap-row:last-child{border-bottom:none}.lap-row:hover{background:#ffffff0a}.lap-row.lap-latest{background:rgba(var(--accent-rgb),.08);border-left:3px solid var(--accent)}.lap-row.lap-latest .lap-row-time{color:var(--accent)}.lap-row-index{font-family:Barlow Condensed,sans-serif;font-size:clamp(13px,1.2vw,17px);font-weight:700;letter-spacing:.08em;color:rgba(var(--accent-rgb),.65);flex-shrink:0;width:clamp(24px,2.4vw,34px);text-align:left;font-variant-numeric:tabular-nums}.lap-row-time{font-family:Teko,sans-serif;font-weight:700;font-size:clamp(24px,2.7vw,38px);line-height:1;letter-spacing:.02em;color:var(--text);flex:1;display:inline-flex;align-items:center;justify-content:flex-end;white-space:nowrap}.lap-digit{display:inline-flex;align-items:center;justify-content:center;width:.95ch;text-align:center}.lap-sep{display:inline-flex;align-items:center;justify-content:center;width:.45ch;text-align:center;opacity:.7}.laps-panel-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(6px,1vh,10px);color:#ffffff38;font-size:clamp(11px,1vw,14px);font-weight:700;letter-spacing:.35em;text-transform:uppercase}.laps-panel-empty i{font-size:clamp(20px,2.4vw,32px);opacity:.35;color:var(--text-dim)}.chrono-bottom-row{grid-column:1;grid-row:2;display:flex;align-items:stretch;gap:var(--gap);height:var(--bar-h);min-height:0}.btn{flex:1;min-width:0;font-size:clamp(20px,3vw,36px);border-radius:clamp(8px,1vw,16px);padding:0;height:100%;cursor:pointer;transition:var(--tr);border:1px solid transparent;display:flex;align-items:center;justify-content:center}.btn i{display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:active{transform:scale(.97) translateY(1px)!important}.btn-main{flex:1;min-width:0;background:var(--accent);color:#000;box-shadow:0 3px 18px rgba(var(--accent-rgb),.35),0 1px #ffffff4d inset}.btn-main:hover{filter:brightness(1.08);transform:translateY(-2px)}.btn-main.is-running{background:#122242f2;color:#ffffffd9;border-color:#ffffff2e;box-shadow:none}.btn-main.is-running:hover{background:#1c325af2;color:#fff;border-color:#ffffff47;filter:none;transform:translateY(-2px)}.btn-main.is-paused{background:var(--accent);color:#000;box-shadow:0 3px 18px rgba(var(--accent-rgb),.35),0 1px #ffffff4d inset}.btn-main.is-paused:hover{filter:brightness(1.1);transform:translateY(-2px)}.btn-lap{flex:1;min-width:0;background:rgba(var(--panel-rgb),.7);color:var(--gold, #ffd43b);border:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px #0000002e}.btn-lap:hover{background:#ffd43b24;border-color:#ffd43b8c;color:#ffd43b;transform:translateY(-2px);box-shadow:0 4px 16px #ffd43b3d}.btn-reset{flex:1;min-width:0;background:rgba(var(--panel-rgb),.7);color:var(--text);border:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px #0000002e}.btn-reset:hover{background:#ff525224;color:#ff8080;border-color:#ff52528c;box-shadow:0 4px 16px #ff52523d;transform:translateY(-2px)}.btn-clear{flex:1;min-width:0;background:rgba(var(--panel-rgb),.7);border:1px solid var(--border);color:var(--text-dim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px #0000002e}.btn-clear:hover{background:#ff3c3c24;color:var(--red);border-color:#ff3c3c80;transform:translateY(-2px)}@media(orientation:portrait),(max-aspect-ratio:1/1){:root{--bar-h: clamp(54px, 8.5vh, 76px);--laps-w: 100%}.stage{padding-top:calc(var(--gap) + env(safe-area-inset-top));padding-bottom:calc(var(--gap) + env(safe-area-inset-bottom));padding-left:max(var(--gap),env(safe-area-inset-left));padding-right:max(var(--gap),env(safe-area-inset-right));overflow:hidden}.chrono-layout{width:min(96vw,1100px);height:100%;max-height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(8px,1.4vh,16px)}.chrono-timer-cell{width:100%;flex:none;height:clamp(110px,16vh,150px);padding:clamp(8px,1.8vh,20px) clamp(10px,2.5vw,24px);margin-top:auto}.chrono-bottom-row{height:var(--bar-h);width:100%;flex-shrink:0;margin-bottom:auto}.chrono-laps-panel{height:clamp(84px,13vh,115px);width:100%;flex-shrink:0;margin-top:0}.laps-panel-header{padding:clamp(6px,1vh,10px) clamp(12px,2.5vw,18px)}.laps-panel-body{display:flex;align-items:center;gap:4px;padding:0 8px 8px;flex:1;min-height:0}.laps-nav-btn{display:flex!important;align-items:center;justify-content:center;flex-shrink:0;width:clamp(22px,5.5vw,32px);height:100%;background:transparent!important;border:none!important;color:var(--text);font-size:clamp(14px,3.8vw,20px);cursor:pointer;transition:opacity .15s,transform .12s,color .15s;box-shadow:none!important;padding:0;z-index:3}.laps-nav-btn i{display:inline-flex;align-items:center;justify-content:center;line-height:1}.laps-nav-btn:hover{background:transparent!important;color:#fff;transform:scale(1.2)}.laps-nav-btn:active{transform:scale(.9)}.laps-nav-btn:disabled,.laps-nav-btn[hidden]{opacity:.18;pointer-events:none}.laps-panel-list{flex-direction:row;align-items:center;overflow-x:auto;overflow-y:hidden;gap:8px;padding:4px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.laps-panel-list::-webkit-scrollbar{display:none}.lap-row{flex-direction:row;align-items:center;justify-content:space-between;gap:8px;width:clamp(120px,30vw,155px);padding:clamp(5px,1vh,8px) clamp(10px,2.5vw,16px);border-radius:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;white-space:nowrap}.lap-row:last-child{border-bottom:1px solid rgba(255,255,255,.08)}.lap-row.lap-latest{background:#ffd43b24;border-color:#ffd43b8c;border-left:1px solid rgba(255,212,59,.55)}.lap-row-index{text-align:left;width:auto;font-size:clamp(12px,2.8vw,15px)}.lap-row-time{font-size:clamp(18px,4.5vw,26px);text-align:right;font-variant-numeric:tabular-nums}.btn{font-size:clamp(20px,4.8vw,30px)}}@media(max-width:380px){.chrono-layout{width:98vw}:root{--gap: 4px}}@media(max-height:520px)and (orientation:landscape){:root{--bar-h: clamp(38px, 11vh, 48px);--gap: 5px;--laps-w: clamp(160px, 24vw, 220px)}.chrono-layout{height:100%;max-height:100%;gap:5px}.chrono-bottom-row .btn,.btn{font-size:clamp(14px,3vh,22px);min-height:0}.chrono-timer-cell{padding:4px 10px;gap:4px}.laps-panel-header{padding:4px 10px}.lap-row{padding:4px 8px}.lap-row-time{font-size:clamp(16px,4vh,24px)}}@media(hover:none)and (pointer:coarse){.btn{min-height:48px}}@media(max-height:520px)and (orientation:landscape)and (pointer:coarse){.chrono-bottom-row .btn{min-height:0}}@keyframes lapIn{0%{opacity:0;transform:translateY(6px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
