@import"https://fonts.googleapis.com/css2?family=Caveat:wght@400;600;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap";@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@300;400;500&display=swap";@import"https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;600;700;800&family=Nunito:wght@400;500;600;700&display=block";.webnav{width:100%}.webnav-tabs{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-bottom:2rem}.webnav-tab{padding:.8rem 2rem;border-radius:var(--radius-pill);border:2px solid var(--color-border);background:var(--color-surface);font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--color-ink-soft);transition:all .2s var(--ease-out)}.webnav-tab:hover{border-color:var(--color-accent);color:var(--color-accent)}.webnav-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;transform:translateY(-2px);box-shadow:0 5px 18px var(--color-accent-glow)}.webnav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem;padding:10px 4px 4px}.webnav-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:1.7rem 1.8rem;display:flex;align-items:center;gap:1.1rem;text-decoration:none;position:relative;overflow:hidden;transition:border-color .22s var(--ease-out),transform .22s var(--ease-out)}.webnav-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-accent);transform:scaleY(0);transform-origin:bottom;transition:transform .22s var(--ease-out);z-index:0}.webnav-card-logo{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;border-radius:14px}.webnav-card:hover:before{transform:scaleY(1)}.webnav-card:hover{border-color:var(--color-accent);transform:translateY(-3px)}.webnav-card:hover .webnav-card-label{color:#fff}.webnav-card:hover .webnav-card-arrow{color:#fff;opacity:1;transform:translate(4px)}.webnav-card-icon{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:24px;position:relative;z-index:1;transition:background .22s}.webnav-card-label{font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--color-ink);flex:1;position:relative;z-index:1;transition:color .22s}.webnav-card-arrow{font-size:1rem;color:#ccc;opacity:0;position:relative;z-index:1;transition:all .22s}.notfound-title{display:flex;align-items:baseline;gap:1.5rem;flex-wrap:wrap}.notfound-img{height:3.5rem;width:auto;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.notfound-subtitle{margin-left:5rem}.accordion-cards{display:flex;flex-direction:column;gap:.75rem}.accordion-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s}.accordion-card:hover{border-color:var(--color-accent);transform:translateY(-1px)}.accordion-card-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.3rem}.accordion-card-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-ink);display:block;margin-bottom:.15rem}.accordion-card-sub{font-size:.78rem;color:var(--color-ink-muted)}.accordion-chevron{font-size:.75rem;color:var(--color-ink-muted);transition:transform .3s var(--ease-out);flex-shrink:0}.accordion-card.open .accordion-chevron{transform:rotate(180deg)}.accordion-card-body{max-height:0;overflow:hidden;opacity:0;transition:max-height .35s var(--ease-out),opacity .25s ease}.accordion-card.open .accordion-card-body{opacity:1}.accordion-card-content{font-size:.92rem;color:var(--color-ink-mid);line-height:1.75;padding:1rem 1.3rem 1.2rem;border-top:1px solid var(--color-border)}.home-header{position:relative;padding-bottom:2rem;border-bottom:2px solid var(--color-border);margin-bottom:2.75rem}.home-header-top{display:flex;align-items:center;gap:1.5rem;margin-bottom:.75rem}.home-logo{width:68px;height:68px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.home-title{font-family:var(--font-display);font-size:3.5rem;font-weight:800;line-height:1.05;color:var(--color-ink)}.home-title-accent{color:var(--color-accent)}.home-subtitle{font-size:1.1rem;color:var(--color-ink-soft);margin-left:calc(68px + 1.5rem)}.home-info-btn{position:absolute;top:0;right:0;width:42px;height:42px;border-radius:50%;background:var(--color-surface);border:1.5px solid var(--color-border);color:var(--color-ink-soft);font-family:var(--font-display);font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s,transform .15s}.home-info-btn:hover{border-color:var(--color-accent);color:var(--color-accent);transform:scale(1.08)}.page-header-actions{position:absolute;top:0;right:0;display:flex;align-items:center;flex-direction:row;gap:.6rem}.page-header-actions .home-info-btn{position:static}@media (max-width: 640px){.home-header{padding-bottom:1.25rem;margin-bottom:1.75rem}.home-header-top{gap:1rem;margin-bottom:.6rem}.home-logo{width:44px;height:44px}.home-title{font-size:2rem}.home-subtitle{font-size:.92rem;margin-left:calc(44px + 1rem)}.home-info-btn{width:36px;height:36px;font-size:.9rem}}.site-footer{text-align:center;margin-top:4rem;font-size:.85rem;color:var(--color-ink-muted);letter-spacing:.05em}.gw-controls{margin-top:2rem;display:flex;align-items:center;justify-content:center}.gw-controls-inner{display:flex;align-items:center;gap:1rem}.gw-flipped-count{font-size:.82rem;font-weight:700;color:var(--color-ink-muted);letter-spacing:.05em}.gw-btn-primary{font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-accent);color:#fff;border:2px solid var(--color-accent);border-radius:var(--radius-pill);padding:.75rem 2.5rem;transition:background .15s,transform .1s}.gw-btn-primary:hover{background:var(--color-accent-dark);transform:scale(1.02)}.gw-btn-ghost{font-family:var(--font-display);font-size:.88rem;font-weight:700;background:none;color:var(--color-ink-soft);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.5rem 1.25rem;transition:border-color .15s,color .15s}.gw-btn-ghost:hover{border-color:var(--color-ink-soft);color:var(--color-ink)}.gw-idle{margin-top:2rem;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:3rem;text-align:center;font-size:.95rem;color:var(--color-ink-muted)}.gw-board{display:grid;gap:.75rem;margin-top:1.5rem}.gw-card{background:none;border:none;padding:0;cursor:pointer;perspective:800px}.gw-card-inner{position:relative;width:100%;aspect-ratio:3 / 4;transform-style:preserve-3d;transition:transform .35s var(--ease-out);border-radius:var(--radius-md)}.gw-card-inner.flipped{transform:rotateY(180deg)}.gw-card-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-md);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;border:1.5px solid var(--color-border)}.gw-card-front{display:flex;flex-direction:column;background:var(--color-surface);transition:border-color .15s}.gw-card:hover .gw-card-front{border-color:var(--color-accent)}.gw-card-img-wrap{flex:1;overflow:hidden}.gw-card-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .3s var(--ease-out)}.gw-card:hover .gw-card-img{transform:scale(1.04)}.gw-card-name{padding:.35rem .5rem;text-align:center;font-family:var(--font-display);font-size:.78rem;font-weight:700;color:var(--color-ink);background:var(--color-surface);border-top:1px solid var(--color-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gw-card-back{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:var(--color-accent);transform:rotateY(180deg)}.gw-card-back-q{font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:#ffffff80;line-height:1}.gw-card-back-name{font-family:var(--font-display);font-size:.72rem;font-weight:700;color:#fff;text-align:center;padding:.2rem .5rem;background:rgba(255,255,255,.2);border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.3)}.slider-wrap{display:flex;flex-direction:column;gap:1.25rem}.slider-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.slider-set-picker{display:flex;align-items:center;gap:.75rem}.slider-set-label{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-soft)}.slider-set-select{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.5rem 1.25rem;outline:none;cursor:pointer;transition:border-color .15s}.slider-set-select:hover,.slider-set-select:focus{border-color:var(--color-accent)}.slider-action-btns{display:flex;gap:.75rem}.slider-progress-track{height:6px;background:var(--color-border);border-radius:100px;overflow:hidden}.slider-progress-fill{height:100%;background:var(--color-accent);border-radius:100px;transition:width .3s var(--ease-out)}.slider-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:4rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:220px}.slider-card--active{border-color:var(--color-accent);animation:sliderFadeUp .25s ease both}@keyframes sliderFadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slider-word{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.5rem);font-weight:800;color:var(--color-ink);text-transform:capitalize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.slider-idle-text{font-size:1rem;color:var(--color-ink-soft)}.slider-done-title{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--color-ink);margin-bottom:.5rem}.slider-done-score{font-size:1.2rem;color:var(--color-accent);font-weight:700;font-family:var(--font-display)}.slider-action-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.slider-btn-group{display:flex;gap:.75rem}.slider-score-badge,.slider-remaining{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink-soft);min-width:80px}.slider-remaining{text-align:right}.slider-btn-primary{font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-accent-dark);color:#fff;border:2px solid var(--color-accent);border-radius:var(--radius-pill);padding:.75rem 2rem;transition:background .15s,transform .1s}.slider-btn-primary:hover{background:var(--color-accent-dark);transform:scale(1.03)}.slider-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.slider-btn-ghost{font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-surface);color:var(--color-ink-soft);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.75rem 2rem;transition:border-color .15s,color .15s}.slider-btn-ghost:hover{border-color:var(--color-ink-soft);color:var(--color-ink)}.slider-btn-correct{font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-accent);color:#fff;border:2px solid var(--color-accent);border-radius:var(--radius-pill);padding:.75rem 2rem;transition:background .15s,transform .1s}.slider-btn-correct:hover{background:var(--color-accent-dark);transform:scale(1.03)}.slider-btn-skip{font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-surface);color:var(--color-ink-soft);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.75rem 2rem;transition:border-color .15s,color .15s}.slider-btn-skip:hover{border-color:var(--color-ink-soft);color:var(--color-ink)}.slider-card--image{flex-direction:row;align-items:center;gap:2.5rem;padding:2rem 2.5rem;text-align:left}.slider-img{width:320px;height:220px;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}@media (max-width: 640px){.slider-card--image{flex-direction:column;text-align:center}.slider-img{width:100%;height:200px}}.race-controls-bar{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.5rem;display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.race-controls-btns{display:flex;flex-wrap:wrap;gap:.6rem}.race-status-bar{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:.9rem 1.5rem;margin-bottom:1.25rem;text-align:center}.race-status-text{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-ink)}.race-status-error{color:#c0392b}.race-status-success{color:#1a7a4a}.race-status-info{color:var(--color-ink-soft)}.race-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 720px){.race-layout{grid-template-columns:1fr}}.race-panel{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.race-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.race-panel-eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.25rem}.race-panel-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--color-ink)}.race-team-count{font-family:var(--font-display);font-size:.78rem;font-weight:700;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.25rem .75rem;color:var(--color-ink-soft);white-space:nowrap}.race-live-badge{font-family:var(--font-display);font-size:.78rem;font-weight:700;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.25rem .75rem;color:var(--color-ink-muted)}.race-live-badge.live{background:#edf7f2;border-color:#a7f3d0;color:#065f3a}.race-tracks{display:flex;flex-direction:column;gap:.75rem}.race-empty{font-size:.88rem;color:var(--color-ink-muted);padding:1rem;border:1.5px dashed var(--color-border);border-radius:var(--radius-md);text-align:center}.race-hint{font-size:.88rem;color:var(--color-ink-soft);line-height:1.7}.race-track-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.6rem}.race-track-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.race-track-label{font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--color-ink)}.race-track-count{font-size:.78rem;font-weight:700;color:var(--color-ink-soft);white-space:nowrap}.race-track-label-inner{display:flex;flex-direction:column;gap:.2rem}.race-track-name{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--color-ink)}.race-track-q{font-size:.78rem;color:var(--color-ink-soft);line-height:1.5}.race-track-bar{position:relative;height:72px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.race-track-start-line{position:absolute;inset-y:0;left:0;width:3px;background:rgba(26,26,46,.15)}.race-track-marker{position:absolute;height:56px;width:56px;top:50%;transform:translate(-50%,-50%) scaleX(-1);transition:left .3s ease-out;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.race-track-controls{display:flex;gap:.5rem}.race-track-btn{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-surface);font-size:1.1rem;font-weight:700;color:var(--color-ink);transition:all .15s}.race-track-btn:hover:not(.disabled){border-color:var(--color-accent);color:var(--color-accent)}.race-track-btn.disabled{opacity:.35;cursor:not-allowed}.race-lock-card{display:flex;flex-direction:column;gap:.75rem;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1rem}.race-lock-header{display:flex;align-items:center;justify-content:space-between}.race-lock-title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-ink)}.race-lock-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;background:#edf7f2;color:#065f3a;border-radius:var(--radius-pill);padding:.2rem .65rem}.race-lock-form{display:flex;flex-direction:column;gap:.6rem}.race-lock-hint{font-size:.78rem;color:var(--color-ink-muted);line-height:1.6}.race-team-list{display:flex;flex-direction:column;gap:.4rem}.race-team-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:.88rem;font-weight:600;color:var(--color-ink)}.race-team-row.selected{border-color:var(--color-accent);background:#fdf0ed}.race-team-row-left{display:flex;align-items:center;gap:.5rem}.race-you-badge{font-size:.68rem;font-weight:700;text-transform:uppercase;background:#fdf0ed;color:var(--color-accent);border-radius:var(--radius-pill);padding:.1rem .5rem}.race-team-progress{font-size:.78rem;font-weight:700;color:var(--color-ink-soft)}.race-answer-area{display:flex;flex-direction:column;gap:.75rem}.race-question-box{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.9rem 1rem}.race-question-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--color-ink);margin-bottom:.3rem}.race-question-text{font-size:.92rem;color:var(--color-ink-mid);line-height:1.65}.race-textarea{width:100%;border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem;font-family:var(--font-body);font-size:.95rem;color:var(--color-ink);background:var(--color-surface);outline:none;resize:vertical;transition:border-color .15s}.race-textarea:focus{border-color:var(--color-accent)}.race-textarea.disabled{background:var(--color-bg);color:var(--color-ink-muted)}.race-answer-btns{display:flex;gap:.6rem;flex-wrap:wrap}.race-pending-list{display:flex;flex-direction:column;gap:.6rem;max-height:60vh;overflow-y:auto}.race-pending-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.5rem}.race-pending-meta{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.race-pending-name{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink)}.race-pending-time{font-size:.72rem;color:var(--color-ink-muted);margin-top:.1rem}.race-pending-actions{display:flex;gap:.4rem}.race-pending-question{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.78rem;color:var(--color-ink-soft)}.race-pending-qtitle{font-weight:700;color:var(--color-ink);margin-bottom:.15rem}.race-pending-answer{font-size:.88rem;color:var(--color-ink);white-space:pre-wrap}.race-presence-badge{font-size:.68rem;font-weight:700;border-radius:var(--radius-pill);padding:.15rem .5rem}.race-badge-active{background:#edf7f2;color:#065f3a}.race-badge-warn{background:#fef3c7;color:#92610a}.race-badge-neutral{background:var(--color-bg);color:var(--color-ink-muted)}.race-login-form{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.race-login-error{background:#fdf0ed;border:1.5px solid #f5c4b3;border-radius:var(--radius-md);padding:.6rem .9rem;font-size:.88rem;color:#993c1d}.race-input{width:100%;font-family:var(--font-body);font-size:.95rem;color:var(--color-ink);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.65rem 1rem;outline:none;transition:border-color .15s}.race-input:focus{border-color:var(--color-accent)}.race-adjust-form{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.race-adjust-label{display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--color-ink)}.race-adjust-modes{display:flex;flex-wrap:wrap;gap:.6rem}.race-adjust-radio{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:600;color:var(--color-ink);cursor:pointer}.race-adjust-btns{display:flex;justify-content:flex-end;gap:.6rem}.race-rules-list{list-style:disc;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;font-size:.92rem;color:var(--color-ink-mid);line-height:1.65;margin-top:.6rem}.race-finish-message{font-size:1rem;color:var(--color-ink-soft);line-height:1.7;margin-top:.5rem}.race-results-group{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:.6rem}.race-results-rank{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--color-accent);margin-bottom:.6rem}.race-results-teams{display:flex;flex-wrap:wrap;gap:1rem}.race-result-team{display:flex;align-items:center;gap:.75rem}.race-result-fish{width:48px;height:48px;-o-object-fit:contain;object-fit:contain}.race-result-name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-ink)}.race-result-pts{font-size:.85rem;color:var(--color-ink-soft)}.ttt-teams-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 600px){.ttt-teams-grid{grid-template-columns:1fr}}.ttt-team-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.1rem;display:flex;flex-direction:column;gap:.5rem}.ttt-team-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.ttt-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.3rem;display:block}.ttt-characters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.ttt-char-btn{display:flex;align-items:center;justify-content:center;height:56px;border-radius:var(--radius-md);border:2px solid transparent;background:var(--color-surface);transition:all .15s}.ttt-char-btn.selected{border-color:var(--color-accent);background:#fdf0ed}.ttt-char-btn.disabled{opacity:.4;cursor:not-allowed}.ttt-char-btn:not(.disabled):hover{border-color:var(--color-border);transform:scale(1.04)}.ttt-char-img{height:44px;width:auto;-o-object-fit:contain;object-fit:contain}.ttt-game-layout{display:grid;grid-template-columns:3fr 1fr;gap:1.25rem;align-items:start}@media (max-width: 720px){.ttt-game-layout{grid-template-columns:1fr}}.ttt-board-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.ttt-turn-text{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--color-ink);margin-top:.2rem}.ttt-first-text{font-size:.75rem;color:var(--color-ink-muted);margin-top:.2rem}.ttt-winner-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);max-width:360px;width:100%;margin:0 auto;background:var(--color-surface)}.ttt-cell{aspect-ratio:1;min-height:90px;display:flex;align-items:center;justify-content:center;border-color:var(--color-border);border-style:solid;border-width:0;background:var(--color-surface);transition:background .15s}.ttt-cell.border-r{border-right-width:2px}.ttt-cell.border-b{border-bottom-width:2px}.ttt-cell.hoverable:hover{background:#fdf0ed;cursor:pointer}.ttt-cell.disabled{cursor:not-allowed;opacity:.7}.ttt-cell-img{width:56px;height:56px;-o-object-fit:contain;object-fit:contain}.ttt-scores{display:flex;flex-direction:column;gap:.75rem}.ttt-score-card{display:flex;align-items:center;justify-content:space-between;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.9rem 1rem;transition:border-color .2s}.ttt-score-card.active{border-color:var(--color-accent);background:#fdf0ed}.ttt-score-num{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--color-ink)}.ttt-score-char{height:56px;width:auto;-o-object-fit:contain;object-fit:contain}.ttt-status{background:#faeeda;border:1.5px solid #fac775;border-radius:var(--radius-md);padding:.65rem .9rem;font-family:var(--font-display);font-size:.88rem;font-weight:700;color:#633806}.ttt-question-text{font-size:1.05rem;color:var(--color-ink);line-height:1.7;margin:.75rem 0 1.25rem}.ttt-answer-form{display:flex;flex-direction:column;gap:.75rem}.ttt-answer-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted)}.ttt-judge-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.ttt-modal-hint{font-size:.75rem;color:var(--color-ink-muted);margin-top:.75rem}.ttt-setup{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem 0 1rem}.ttt-setup-teams{display:grid;grid-template-columns:1fr 1fr;gap:3rem;width:100%;max-width:560px}.ttt-setup-team{display:flex;flex-direction:column;align-items:center;gap:1rem}.ttt-setup-team-label{font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--color-ink)}.ttt-setup-picker{display:flex;align-items:center;gap:.75rem}.ttt-setup-arrow{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--color-ink-soft);background:none;border:none;padding:0 .25rem;line-height:1;transition:color .15s;cursor:pointer}.ttt-setup-arrow:hover{color:var(--color-accent)}.ttt-setup-char-wrap{width:110px;height:110px;border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;justify-content:center;overflow:hidden}.ttt-setup-char-img{width:90px;height:90px;-o-object-fit:contain;object-fit:contain}.ttt-setup-name-input{width:100%;font-family:var(--font-body);font-size:.95rem;color:var(--color-ink);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem .9rem;outline:none;text-align:center;transition:border-color .15s}.ttt-setup-name-input:focus{border-color:var(--color-accent)}.ttt-setup-ready{display:flex;justify-content:center}.ttt-controls-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}.hangman-page .page-inner{display:flex;flex-direction:column}.hangman-layout{display:grid;grid-template-columns:260px 1fr;gap:1.5rem;align-items:stretch;margin-top:2rem}@media (max-width: 720px){.hangman-layout{grid-template-columns:1fr}}.hangman-sidebar{display:flex;flex-direction:column;gap:1rem}.hangman-card{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;display:flex;flex-direction:column;gap:.5rem}.hangman-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);display:block}.hangman-select{width:100%;font-family:var(--font-body);font-size:.92rem;font-weight:600;color:var(--color-ink);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem .75rem;outline:none;transition:border-color .15s;cursor:pointer}.hangman-select:focus{border-color:var(--color-accent)}.hangman-empty{font-size:.82rem;color:var(--color-ink-soft);line-height:1.6}.hangman-score-row{display:flex;align-items:baseline;gap:.25rem}.hangman-score-num{font-family:var(--font-display);font-size:2.25rem;font-weight:800;color:var(--color-ink);line-height:1}.hangman-score-denom{font-size:1rem;font-weight:600;color:var(--color-ink-soft)}.hangman-score-pct{font-size:.78rem;color:var(--color-ink-muted)}.hangman-wrong-letters{display:flex;flex-wrap:wrap;gap:.4rem;min-height:1.75rem}.hangman-wrong-chip{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-sm);background:#fdf0ed;border:1.5px solid #f5c4b3;font-size:.82rem;font-weight:700;color:var(--color-accent-dark)}.hangman-none{font-size:.82rem;color:var(--color-ink-muted)}.hangman-mistakes-bar{display:flex;gap:3px;margin-top:.25rem}.hangman-mistake-pip{flex:1;height:4px;border-radius:100px;background:var(--color-border);transition:background .2s}.hangman-mistake-pip.filled{background:var(--color-accent)}.hangman-main{display:flex;flex-direction:column;gap:1.25rem;height:100%}:root{--hangman-box-height: 260px;--hangman-banner-height:calc(100px + .5rem)}.hangman-top-row{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:start}@media (max-width: 560px){.hangman-top-row{grid-template-columns:1fr}}.hangman-left-col{height:var(--hangman-box-height);display:flex;flex-direction:column;gap:0}.hangman-word-area{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;flex:1 1 0;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:1rem;overflow:hidden;transition:flex-basis .35s var(--ease-out)}.hangman-idle-text{font-size:.95rem;color:var(--color-ink-muted);text-align:center}.hangman-word{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.hangman-tile{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:2rem}.hangman-tile-space{width:1rem}.hangman-tile-char{font-family:var(--font-display);font-size:1.4rem;font-weight:800;color:var(--color-ink);height:1.75rem;display:flex;align-items:center;justify-content:center}.hangman-tile-char.missed{color:var(--color-accent)}.hangman-tile-line{display:block;width:100%;height:2.5px;border-radius:100px;background:var(--color-border)}.hangman-banner{border-radius:var(--radius-sm);padding:.65rem 1rem;font-size:.9rem;font-weight:600;line-height:1.5;text-align:center;overflow:hidden;flex:0 0 var(--hangman-banner-height);margin-top:.5rem;opacity:1;transition:flex-basis .35s var(--ease-out),opacity .25s ease,padding .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem}.hangman-banner-hidden{flex-basis:0!important;opacity:0;padding-top:0;padding-bottom:0;margin-top:0}.hangman-banner-won{background:#edf7f2;border:1.5px solid #a3d9b8;color:#065f3a}.hangman-banner-lost{background:#fdf0ed;border:1.5px solid #f5c4b3;color:var(--color-accent-dark)}.hangman-drawing-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1rem;width:180px;height:var(--hangman-box-height);flex-shrink:0}.hangman-svg{width:110px;height:132px}.hangman-mistakes-label{font-size:.75rem;font-weight:700;color:var(--color-ink-muted)}.hangman-keyboard-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem;display:flex;flex-direction:column;justify-content:center;gap:.75rem;flex:1}.hangman-keyboard{display:flex;flex-direction:column;align-items:center;gap:.4rem}.hangman-keyboard-row{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:center}.hangman-key{width:2.4rem;height:2.4rem;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-bg);font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink);transition:all .12s}.hangman-key:not(:disabled):hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.hangman-key:disabled{cursor:not-allowed}.hangman-key.correct{background:#edf7f2;border-color:#a3d9b8;color:#065f3a}.hangman-key.wrong{background:#fdf0ed;border-color:#f5c4b3;color:var(--color-accent-dark)}.hangman-key.used{opacity:.4}.hangman-hint-text{font-size:.88rem;color:var(--color-ink-mid);line-height:1.6}.hangman-btn-primary{width:100%;font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-accent);color:#fff;border:2px solid var(--color-accent);border-radius:var(--radius-pill);padding:.75rem 2rem;transition:background .15s,transform .1s}.hangman-btn-primary:hover:not(:disabled){background:var(--color-accent-dark);transform:scale(1.02)}.hangman-btn-primary:disabled{opacity:.5;cursor:not-allowed}.hangman-quiz-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.75rem}.hangman-quiz-input{width:100%;font-family:var(--font-body);font-size:.95rem;color:var(--color-ink);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.65rem 1rem;outline:none;transition:border-color .15s}.hangman-quiz-input:focus{border-color:var(--color-accent)}.hangman-quiz-feedback{border-radius:var(--radius-sm);padding:.6rem .9rem;font-size:.88rem;font-weight:600;margin-top:.25rem}.hangman-quiz-feedback.correct{background:#edf7f2;border:1.5px solid #a3d9b8;color:#065f3a}.hangman-quiz-feedback.incorrect{background:#fdf0ed;border:1.5px solid #f5c4b3;color:var(--color-accent-dark)}.hangman-next-wrap{display:flex;justify-content:center;margin-top:1rem;overflow:hidden;max-height:80px;opacity:1;transition:max-height .35s var(--ease-out),opacity .25s ease}.hangman-next-wrap-hidden{max-height:0;opacity:0}.hangman-btn-next{font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--color-accent);background:none;border:1.5px solid var(--color-accent);border-radius:var(--radius-pill);padding:.45rem 1.1rem;transition:background .15s,color .15s}.hangman-btn-next:hover:not(:disabled){background:var(--color-accent);color:#fff}.hangman-btn-next:disabled{opacity:.4;cursor:not-allowed}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-muted)}.jeopardy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(26,26,46,.45);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.jeopardy-modal-box{position:relative;background:var(--color-bg);border-radius:var(--radius-lg);max-width:620px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 24px 64px #1a1a2e33}.jeopardy-setup{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column;gap:2rem}.jeopardy-setup-heading{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--color-ink);margin-bottom:1rem}.jeopardy-setup-section{display:flex;flex-direction:column}.jeopardy-setup-hint{font-size:.85rem;color:var(--color-ink-soft);margin-top:.6rem}.jeopardy-teams-grid{display:flex;flex-direction:column;gap:.6rem}.jeopardy-team-row{display:flex;align-items:center;gap:.75rem;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.6rem 1rem}.jeopardy-team-label{font-family:var(--font-display);font-size:.78rem;font-weight:700;color:var(--color-accent);min-width:52px;text-transform:uppercase;letter-spacing:.05em}.jeopardy-team-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:.95rem;color:var(--color-ink)}.jeopardy-team-input::-moz-placeholder{color:var(--color-ink-muted)}.jeopardy-team-input::placeholder{color:var(--color-ink-muted)}.jeopardy-remove-btn{font-size:.78rem;font-weight:700;color:var(--color-ink-muted);background:none;border:none;cursor:pointer;transition:color .15s}.jeopardy-remove-btn:hover{color:var(--color-accent)}.jeopardy-q-count{font-size:.88rem;color:var(--color-ink-soft);font-weight:600}.jeopardy-game{display:flex;flex-direction:column;gap:1.25rem}.jeopardy-scorebar{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.jeopardy-turn-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.2rem}.jeopardy-turn-name{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--color-ink)}.jeopardy-scores{display:flex;flex-wrap:wrap;gap:.5rem}.jeopardy-score-chip{font-family:var(--font-display);font-size:.82rem;font-weight:700;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.3rem .85rem;color:var(--color-ink-soft);transition:all .2s}.jeopardy-score-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.jeopardy-board{display:grid;gap:.75rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;overflow-x:auto}.jeopardy-column{display:flex;flex-direction:column;gap:.6rem}.jeopardy-category-header{background:var(--color-accent);color:#fff;font-family:var(--font-display);font-size:.78rem;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.05em;padding:.6rem .5rem;border-radius:var(--radius-sm)}.jeopardy-cell{min-height:90px;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:.75rem .5rem;border:2px solid var(--color-border);transition:all .18s var(--ease-out);text-align:center}.jeopardy-cell--empty{background:var(--color-bg);border-style:dashed}.jeopardy-cell--active{background:var(--color-surface);cursor:pointer}.jeopardy-cell--active:hover{border-color:var(--color-accent);transform:translateY(-2px)}.jeopardy-cell--revealed{background:var(--color-bg);cursor:default}.jeopardy-cell-points{font-family:var(--font-display);font-size:.72rem;font-weight:700;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.05em}.jeopardy-cell-q{font-family:var(--font-display);font-size:1.75rem;font-weight:800;color:var(--color-accent)}.jeopardy-revealed-by{font-family:var(--font-display);font-size:.72rem;font-weight:700;color:var(--color-ink-muted);line-height:1.4}.jeopardy-question-body{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.1rem 1.3rem}.jeopardy-question-text{font-size:1.05rem;color:var(--color-ink);line-height:1.7}.jeopardy-question-img{margin-top:1rem;width:100%;max-height:280px;-o-object-fit:contain;object-fit:contain;border-radius:var(--radius-md);background:var(--color-bg)}.jeopardy-answer-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted);margin-bottom:.4rem}.jeopardy-answer-text{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--color-ink)}.jeopardy-answer-btns{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}.jeopardy-results-list{display:flex;flex-direction:column;gap:.6rem}.jeopardy-result-row{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem 1.1rem}.jeopardy-result-left{display:flex;align-items:center;gap:.75rem}.jeopardy-rank{font-family:var(--font-display);font-size:.78rem;font-weight:700;background:var(--color-accent);color:#fff;border-radius:var(--radius-pill);padding:.2rem .65rem}.jeopardy-result-name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-ink)}.jeopardy-result-score{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-accent)}.jeopardy-results-footer{display:flex;align-items:center;justify-content:space-between;margin-top:1.5rem;flex-wrap:wrap;gap:1rem}.jeopardy-results-hint{font-size:.85rem;color:var(--color-ink-soft)}.dtp-idle{display:flex;flex-direction:column;gap:2rem}.dtp-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.dtp-set-picker{display:flex;align-items:center;gap:.75rem}.dtp-set-label{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-soft)}.dtp-preview-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}@media (max-width: 860px){.dtp-preview-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.dtp-preview-grid{grid-template-columns:1fr 1fr}}.dtp-preview-card{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.3rem;transition:border-color .15s,transform .15s}.dtp-preview-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.dtp-preview-num{font-family:var(--font-display);font-size:.72rem;font-weight:800;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase}.dtp-preview-label{font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:var(--color-ink);line-height:1.1}.dtp-preview-jp{font-size:.78rem;color:var(--color-ink-muted);margin-bottom:.4rem}.dtp-preview-hint{font-size:.8rem;color:var(--color-ink-soft);line-height:1.5}.dtp-game{display:flex;flex-direction:column;gap:1.25rem}.dtp-progress-row{display:flex;align-items:center;gap:1rem}.dtp-progress-label{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--color-ink-soft);white-space:nowrap}.dtp-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.dtp-layout--stretch{align-items:stretch}@media (max-width: 720px){.dtp-layout{grid-template-columns:1fr}}.dtp-img-wrap{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:none;border:none}.dtp-img{width:100%;aspect-ratio:4 / 3;-o-object-fit:cover;object-fit:cover;display:block;animation:sliderFadeUp .3s ease both}.dtp-summary-badge{position:absolute;top:1rem;left:1rem;background:var(--color-accent);color:#fff;font-family:var(--font-display);font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .75rem;border-radius:var(--radius-pill)}.dtp-prompt-panel{display:flex;flex-direction:column;gap:.75rem}.dtp-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.dtp-tab{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .25rem .5rem;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:border-color .15s,background .15s,transform .1s;min-width:0}.dtp-tab:hover{border-color:var(--color-accent);transform:translateY(-1px)}.dtp-tab--active{border-color:var(--color-accent);background:#fdf0ed;box-shadow:0 0 0 3px var(--color-accent-glow)}.dtp-tab--done{border-color:#c8e6c9;background:#f1f8f1}.dtp-tab-num{font-family:var(--font-display);font-size:.65rem;font-weight:800;color:var(--color-ink-muted);letter-spacing:.05em}.dtp-tab--active .dtp-tab-num{color:var(--color-accent)}.dtp-tab-label{font-family:var(--font-display);font-size:.82rem;font-weight:800;color:var(--color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dtp-tab-check{font-size:.7rem;color:#388e3c;font-weight:700}.dtp-active-area{display:flex;flex-direction:column;gap:.5rem;background:var(--color-surface);border:1.5px solid var(--color-accent);border-radius:var(--radius-md);padding:.9rem 1rem;height:180px;overflow:hidden}.dtp-step-hint{font-size:.8rem;color:var(--color-ink-soft);line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.dtp-textarea{width:100%;flex:1;font-family:var(--font-body);font-size:.92rem;color:var(--color-ink);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-sm);padding:.65rem .85rem;outline:none;resize:none;line-height:1.6;transition:border-color .15s;overflow-y:auto}.dtp-textarea:focus{border-color:var(--color-accent)}.dtp-prompt-action{display:flex;justify-content:flex-end;padding-top:.25rem}.dtp-summary-title{font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--color-ink);margin-bottom:.25rem}.dtp-summary-list{display:flex;flex-direction:column;gap:.6rem;max-height:360px;overflow-y:auto}.dtp-prompt-panel--summary{aspect-ratio:4 / 3;display:flex;flex-direction:column;gap:0;overflow:hidden}.dtp-summary-list--match{flex:1;max-height:none;overflow-y:auto;padding:.25rem 0}.dtp-summary-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding-top:.25rem}.dtp-btn-quit{font-family:var(--font-display);font-size:1rem;font-weight:700;background:var(--color-surface);color:var(--color-ink-soft);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.75rem 1.5rem;transition:border-color .15s,color .15s;cursor:pointer}.dtp-btn-quit:hover{border-color:var(--color-accent);color:var(--color-accent)}.dtp-summary-item{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem}.dtp-summary-q{font-family:var(--font-display);font-size:.72rem;font-weight:800;color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:.2rem}.dtp-summary-a{font-size:.88rem;color:var(--color-ink-mid);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dtp-done{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:4rem 2rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;animation:sliderFadeUp .3s ease both}.dtp-done-emoji{font-size:3rem;margin-bottom:.5rem}.dtp-done-sub{font-size:1rem;color:var(--color-ink-soft)}.dtp-done-actions{display:flex;align-items:center;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap;justify-content:center}.contact-page{display:flex;justify-content:center;height:100vh;overflow:hidden}.contact-inner{display:flex;flex-direction:column;height:100%;overflow:hidden}.contact-card{flex:1;overflow-y:auto;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem 2.5rem;display:flex;flex-direction:column;gap:1.4rem;animation:sliderFadeUp .3s ease both;min-height:0}.contact-intro{font-size:1rem;color:var(--color-ink-soft);line-height:1.6}.contact-error-banner{background:#fff3f0;border:1.5px solid #f5bba8;border-radius:var(--radius-md);padding:.85rem 1.1rem;font-size:.9rem;color:#b84020}.contact-form{display:flex;flex-direction:column;gap:1.25rem}.contact-field{display:flex;flex-direction:column;gap:.45rem}.contact-label{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink);display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.contact-label-jp{font-size:.78rem;color:var(--color-ink-muted);font-weight:600}.contact-required{color:var(--color-accent);font-size:.85rem}.contact-label-optional{font-size:.75rem;color:var(--color-ink-muted);font-weight:500}.contact-input{font-family:var(--font-body);font-size:.95rem;color:var(--color-ink);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem 1rem;outline:none;transition:border-color .15s;width:100%}.contact-input:focus{border-color:var(--color-accent)}.contact-textarea{height:auto;min-height:110px;resize:vertical}.contact-grade-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.contact-grade-badge{font-family:var(--font-display);font-size:.85rem;font-weight:800;color:var(--color-accent);background:var(--color-accent-icon);border-radius:var(--radius-pill);padding:.3rem .9rem;white-space:nowrap}.contact-dropzone{position:relative;border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:1.25rem;cursor:pointer;transition:border-color .2s,background .2s}.contact-dropzone:hover{border-color:var(--color-accent);background:#fdf5f1}.contact-dropzone--has-file{border-style:solid;border-color:var(--color-accent);background:#fdf5f1;cursor:default}.contact-dropzone-idle{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center}.contact-dropzone-text{font-size:.9rem;color:var(--color-ink-soft)}.contact-dropzone-link{color:var(--color-accent);font-weight:700;text-decoration:underline}.contact-file-info{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.contact-file-icon{font-size:1.25rem}.contact-file-name{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink);word-break:break-all}.contact-file-remove{margin-left:auto;font-size:.8rem;color:var(--color-ink-muted);background:none;border:none;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:color .15s,background .15s}.contact-file-remove:hover{color:#b84020;background:#fde8e2}.contact-file-note{font-size:.78rem;color:var(--color-ink-muted);line-height:1.5}.contact-email-link{color:var(--color-accent);text-decoration:underline;font-weight:600}.contact-submit-row{display:flex;padding-top:.25rem}.contact-submit{display:flex;align-items:center;gap:.5rem}.contact-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:contact-spin .7s linear infinite;flex-shrink:0}@keyframes contact-spin{to{transform:rotate(360deg)}}.contact-success{justify-content:center;align-items:center;text-align:center}.contact-success-emoji{font-size:3rem;margin-bottom:.5rem}.contact-success-sub{font-size:1rem;color:var(--color-ink-soft);max-width:360px;line-height:1.6;margin-bottom:.5rem}@media (max-width: 560px){.contact-card{padding:1.25rem}.contact-grade-row{flex-direction:column;align-items:stretch}}.ew-idle{display:flex;flex-direction:column;gap:1.75rem}.ew-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.ew-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}@media (max-width: 640px){.ew-preview-grid{grid-template-columns:1fr}}.ew-preview-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem 1.5rem 1.75rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;transition:border-color .2s var(--ease-out),transform .2s var(--ease-out)}.ew-preview-card:hover{border-color:var(--color-accent);transform:translateY(-3px)}.ew-preview-emoji{font-size:2rem;margin-bottom:.4rem}.ew-preview-num{font-family:var(--font-display);font-size:.7rem;font-weight:800;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase}.ew-preview-label{font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:var(--color-ink)}.ew-preview-jp{font-size:.85rem;color:var(--color-ink-muted);margin-bottom:.4rem}.ew-preview-hint{font-size:.85rem;color:var(--color-ink-soft);line-height:1.55}.ew-game{display:flex;flex-direction:column;gap:1.25rem;animation:sliderFadeUp .25s ease both}.ew-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem 2.25rem;display:flex;flex-direction:column;gap:1.25rem}.ew-prompt-block{display:flex;flex-direction:column;gap:.4rem}.ew-prompt-eyebrow{font-family:var(--font-display);font-size:.7rem;font-weight:800;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase}.ew-prompt-text{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--color-ink);line-height:1.4}.ew-checklist{display:flex;gap:.6rem;flex-wrap:wrap}.ew-checklist-pill{font-family:var(--font-display);font-size:.8rem;font-weight:700;color:var(--color-ink-soft);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.3rem .9rem}.ew-textarea{min-height:200px;resize:vertical}.ew-summary-badge-row{display:flex;align-items:center;gap:.75rem}.ew-summary-badge{font-family:var(--font-display);font-size:.72rem;font-weight:800;color:#fff;background:var(--color-accent);border-radius:var(--radius-pill);padding:.25rem .85rem;letter-spacing:.06em;text-transform:uppercase}.ew-summary-answer{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem 1.4rem;min-height:140px}.ew-summary-answer-text{font-size:.97rem;color:var(--color-ink-mid);line-height:1.7;white-space:pre-wrap}.ew-summary-answer-empty{font-size:.9rem;color:var(--color-ink-muted);font-style:italic}.quiz-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2.25rem 2.5rem;animation:quizFadeUp .3s ease both}@keyframes quizFadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.quiz-progress{display:flex;align-items:center;gap:.5rem;margin-bottom:2rem}.quiz-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:background .2s,transform .2s}.quiz-dot.active{background:var(--color-accent);transform:scale(1.3)}.quiz-dot.done{background:var(--color-accent-dark)}.quiz-eyebrow{font-family:var(--font-display);font-size:.7rem;font-weight:800;color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem}.quiz-question{font-family:var(--font-display);font-size:1.45rem;font-weight:800;color:var(--color-ink);line-height:1.3;margin-bottom:1.75rem}.quiz-field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.25rem}.quiz-label{font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--color-ink)}.quiz-input,.quiz-select,.quiz-textarea{font-family:var(--font-body);font-size:.95rem;color:var(--color-ink);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem 1rem;outline:none;width:100%;transition:border-color .15s;-moz-appearance:none;appearance:none;-webkit-appearance:none}.quiz-input:focus,.quiz-select:focus,.quiz-textarea:focus{border-color:var(--color-accent)}.quiz-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888780' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.25rem;cursor:pointer}.quiz-textarea{min-height:100px;resize:vertical}.quiz-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.quiz-slider-wrap{display:flex;flex-direction:column;gap:.75rem}.quiz-slider-value{text-align:center;font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:var(--color-accent);line-height:1}.quiz-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--color-border);outline:none;cursor:pointer}.quiz-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--color-accent);cursor:pointer;box-shadow:0 2px 8px var(--color-accent-glow);-webkit-transition:transform .15s;transition:transform .15s}.quiz-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.quiz-slider::-moz-range-thumb{width:22px;height:22px;border:none;border-radius:50%;background:var(--color-accent);cursor:pointer;box-shadow:0 2px 8px var(--color-accent-glow)}.quiz-slider-labels{display:flex;justify-content:space-between;font-size:.78rem;color:var(--color-ink-muted)}.quiz-slider-emoji-label{text-align:center;font-size:.95rem;color:var(--color-ink-mid);margin-top:.25rem}.quiz-next-row{display:flex;justify-content:flex-end;margin-top:2rem}.quiz-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.75rem;border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;font-family:var(--font-display);font-size:1rem;font-weight:700;border:none;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 4px 14px var(--color-accent-glow)}.quiz-btn:hover{background:var(--color-accent-dark);transform:translateY(-2px);box-shadow:0 6px 20px var(--color-accent-glow)}.quiz-btn:active{transform:translateY(0)}.quiz-btn-arrow{font-size:1.1rem;transition:transform .15s}.quiz-btn:hover .quiz-btn-arrow{transform:translate(3px)}.quiz-summary-emoji{font-size:2.5rem;margin-bottom:.5rem}.quiz-summary-title{font-family:var(--font-display);font-size:1.6rem;font-weight:800;color:var(--color-ink);margin-bottom:.25rem}.quiz-summary-sub{font-size:.85rem;color:var(--color-ink-muted);margin-bottom:2rem}.quiz-summary-list{display:flex;flex-direction:column;gap:1rem}.quiz-summary-item{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.3rem}.quiz-summary-q{font-family:var(--font-display);font-size:.72rem;font-weight:800;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em}.quiz-summary-a{font-size:.97rem;color:var(--color-ink);line-height:1.6}.quiz-rest-display{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.quiz-rest-star{font-size:1.1rem}.quiz-summary-ranking{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.quiz-summary-ranking-item{display:flex;align-items:center;gap:.6rem}.quiz-summary-ranking-num{font-family:var(--font-display);font-size:.72rem;font-weight:800;color:var(--color-accent);min-width:1rem;text-align:right}@media (max-width: 560px){.quiz-card{padding:1.5rem 1.25rem}.quiz-row{grid-template-columns:1fr}.quiz-question{font-size:1.2rem}}.quiz-status{border-radius:var(--radius-md);padding:.75rem 1.1rem;font-family:var(--font-display);font-size:.9rem;font-weight:700;margin-bottom:1.5rem}.quiz-status--success{background:#edf7ee;color:#2a7a3b;border:1.5px solid #b6debb}.quiz-status--error{background:#fdecea;color:#b84020;border:1.5px solid #f5c2b8}.quiz-ranking-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.quiz-ranking-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;outline:none;transition:border-color .15s,background .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.quiz-ranking-item:focus,.quiz-ranking-item--focused{border-color:var(--color-accent);background:var(--color-surface)}.quiz-ranking-num{font-family:var(--font-display);font-size:.75rem;font-weight:800;color:var(--color-accent);min-width:1.1rem;text-align:center;flex-shrink:0}.quiz-ranking-text{flex:1;font-family:var(--font-body);font-size:.95rem;color:var(--color-ink)}.quiz-ranking-arrows{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.quiz-ranking-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:20px;padding:0;background:none;border:1.5px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-ink-muted);font-size:.6rem;line-height:1;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.quiz-ranking-arrow:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.quiz-ranking-arrow:disabled{opacity:.25;cursor:default}.quiz-ranking-hint{font-size:.75rem;color:var(--color-ink-muted);margin-top:.25rem;text-align:center}.dl-shell{display:flex;flex-direction:column;gap:2rem}.dl-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem 2.25rem;display:flex;flex-direction:column;gap:1.25rem}.dl-card-title{font-family:var(--font-display);font-size:1rem;font-weight:800;color:var(--color-ink)}.dl-card-hint{font-size:.85rem;color:var(--color-ink-muted);margin-top:-.75rem}.dl-input-row{display:flex;gap:.75rem;align-items:center}.dl-input{font-family:var(--font-body);font-size:.97rem;color:var(--color-ink);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem 1rem;outline:none;transition:border-color .15s;flex:1;min-width:0}.dl-input:focus{border-color:var(--color-accent)}.dl-input::-moz-placeholder{color:var(--color-ink-muted)}.dl-input::placeholder{color:var(--color-ink-muted)}.dl-btn-primary{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:#fff;background:var(--color-accent);border-radius:var(--radius-pill);padding:.7rem 1.6rem;border:none;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s,box-shadow .15s}.dl-btn-primary:hover:not(:disabled){background:var(--color-accent-dark);transform:translateY(-1px);box-shadow:0 4px 14px var(--color-accent-glow)}.dl-btn-primary:disabled{opacity:.55;cursor:not-allowed}.dl-btn-ghost{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink-soft);background:none;border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.65rem 1.4rem;cursor:pointer;transition:border-color .15s,color .15s}.dl-btn-ghost:hover{border-color:var(--color-accent);color:var(--color-accent)}.dl-status{display:flex;align-items:center;gap:.6rem;font-size:.88rem;color:var(--color-ink-mid);padding:.6rem .9rem;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);animation:dl-fade-in .2s ease both}.dl-status--error{color:#b84020;border-color:#f2bfb0;background:#fdf1ee}.dl-status-dot{width:7px;height:7px;border-radius:50%;background:var(--color-accent);flex-shrink:0;animation:dl-pulse 1.2s ease-in-out infinite}@keyframes dl-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}@keyframes dl-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.dl-results{display:flex;flex-direction:column;gap:1rem;animation:dl-fade-in .25s ease both}.dl-results-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.dl-results-title{font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:var(--color-ink)}.dl-results-actions{display:flex;gap:.6rem;flex-wrap:wrap}.dl-class-list{display:flex;flex-direction:column;gap:1rem}.dl-class-block{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s}.dl-class-block:hover{border-color:var(--color-border-hover)}.dl-class-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.4rem;background:var(--color-bg);border-bottom:1.5px solid var(--color-border)}.dl-class-name{font-family:var(--font-display);font-size:1.05rem;font-weight:800;color:var(--color-ink)}.dl-class-count{font-size:.8rem;color:var(--color-ink-muted);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.2rem .75rem;font-family:var(--font-display);font-weight:700}.dl-student-list{display:flex;flex-direction:column}.dl-student{padding:1rem 1.4rem;border-bottom:1px solid var(--color-border)}.dl-student:last-child{border-bottom:none}.dl-student-name{font-family:var(--font-display);font-size:.92rem;font-weight:800;color:var(--color-accent);margin-bottom:.5rem}.dl-qa-list{display:flex;flex-direction:column;gap:.4rem}.dl-qa-item{font-size:.88rem;line-height:1.55}.dl-qa-q{color:var(--color-ink-mid);font-weight:600}.dl-qa-a{color:var(--color-ink)}@media (max-width: 560px){.dl-card{padding:1.25rem}.dl-input-row{flex-direction:column;align-items:stretch}.dl-btn-primary{text-align:center}}.altg-page{display:flex;justify-content:center}.altg-inner{width:100%;max-width:1040px;padding:3rem;display:flex;flex-direction:column}.altg-toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.altg-search-wrap{position:relative;display:flex;align-items:center}.altg-search-icon{position:absolute;left:1rem;font-size:1rem;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1}.altg-search{font-family:var(--font-body);font-size:1rem;color:var(--color-ink);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.75rem 3rem .75rem 2.8rem;width:100%;outline:none;transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}.altg-search:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.altg-search::-webkit-search-cancel-button{display:none}.altg-search-clear{position:absolute;right:1rem;font-size:.8rem;color:var(--color-ink-muted);padding:.25rem .4rem;border-radius:var(--radius-sm);transition:color .15s,background .15s;line-height:1}.altg-search-clear:hover{color:var(--color-ink);background:var(--color-bg)}.altg-filter{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.altg-filter-pill{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--color-ink-soft);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.35rem 1rem;cursor:pointer;transition:border-color .18s var(--ease-out),color .18s var(--ease-out),background .18s var(--ease-out),transform .18s var(--ease-out),box-shadow .18s var(--ease-out);white-space:nowrap}.altg-filter-pill:hover{border-color:var(--color-accent);color:var(--color-accent)}.altg-filter-pill.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;transform:translateY(-1px);box-shadow:0 4px 14px var(--color-accent-glow)}.altg-sections{display:flex;flex-direction:column;gap:2.25rem;padding-bottom:2rem}.altg-section{display:flex;flex-direction:column;gap:.6rem}.altg-section-title{font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--color-ink);display:flex;align-items:center;gap:.5rem;padding-bottom:.55rem;border-bottom:2px solid var(--color-border)}.altg-section-emoji{font-size:1.15rem;line-height:1}.faq-list{display:flex;flex-direction:column;gap:.55rem}.faq-empty{font-size:.95rem;color:var(--color-ink-soft);padding:1rem 0}.dropdown{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}.dropdown:hover,.dropdown.open{border-color:var(--color-accent)}.dropdown.open{box-shadow:0 4px 18px var(--color-accent-glow)}.dropdown-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.3rem;text-align:left;background:none;border:none;cursor:pointer}.dropdown-question{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--color-ink);line-height:1.4;flex:1}.dropdown-chevron{font-size:1rem;color:var(--color-ink-muted);flex-shrink:0;transition:transform .3s var(--ease-out),color .18s;display:inline-block}.dropdown.open .dropdown-chevron{transform:rotate(180deg);color:var(--color-accent)}.dropdown-body{max-height:0;overflow:hidden;transition:max-height .38s var(--ease-out),opacity .25s ease;opacity:0}.dropdown.open .dropdown-body{opacity:1}.dropdown-content{padding:.9rem 1.3rem 1.2rem;border-top:1.5px solid var(--color-border);font-size:.93rem;color:var(--color-ink-mid);line-height:1.75;display:flex;flex-direction:column;gap:.6rem}.dropdown-content p{margin:0}.dropdown-content ul,.dropdown-content ol{padding-left:1.4rem;display:flex;flex-direction:column;gap:.3rem;margin:0}.dropdown-content li{line-height:1.6}.dropdown-content strong{color:var(--color-ink);font-weight:700}.dropdown-content em{color:var(--color-ink-soft)}@media (max-width: 640px){.altg-inner{padding:1.75rem 1.25rem}.altg-toolbar{gap:.6rem;margin-bottom:1.5rem}.altg-search{font-size:.92rem;padding:.65rem 2.75rem .65rem 2.6rem}.altg-filter{gap:.4rem}.altg-filter-pill{font-size:.8rem;padding:.3rem .85rem}.altg-sections{gap:1.75rem}.altg-section-title{font-size:1rem;padding-bottom:.45rem}.altg-section-emoji{font-size:1rem}.dropdown-header{padding:.85rem 1rem;gap:.75rem}.dropdown-question{font-size:.93rem}.dropdown-content{font-size:.88rem;padding:.75rem 1rem 1rem}}.viz-shell{display:flex;flex-direction:column;gap:1.75rem}.viz-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem 2.25rem;display:flex;flex-direction:column;gap:1.25rem}.viz-card-title{font-family:var(--font-display);font-size:1rem;font-weight:800;color:var(--color-ink);display:flex;align-items:center;gap:.6rem}.viz-card-hint{font-size:.85rem;color:var(--color-ink-muted);margin-top:-.75rem}.viz-step{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--color-accent);color:#fff;font-family:var(--font-display);font-size:.72rem;font-weight:800;flex-shrink:0}.viz-selectors{gap:1.75rem}.viz-select-group{display:flex;flex-direction:column;gap:.75rem;animation:viz-fade-in .2s ease both}.viz-pill-row{display:flex;flex-wrap:wrap;gap:.5rem}.viz-pill{font-family:var(--font-display);font-size:.88rem;font-weight:700;color:var(--color-ink-soft);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-pill);padding:.45rem 1.1rem;cursor:pointer;transition:border-color .15s,color .15s,background .15s,transform .15s}.viz-pill:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.viz-pill--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 4px 14px var(--color-accent-glow)}.viz-pill--active:hover{background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:#fff}.viz-numeric-badge{font-family:var(--font-display);font-size:.68rem;font-weight:800;color:var(--color-accent);background:var(--color-accent-icon);border-radius:var(--radius-pill);padding:.15rem .65rem;letter-spacing:.04em;text-transform:uppercase}.viz-chart-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;animation:viz-fade-in .3s ease both}.viz-chart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 2rem 1.25rem;border-bottom:1.5px solid var(--color-border);background:var(--color-bg)}.viz-chart-eyebrow{font-family:var(--font-display);font-size:.72rem;font-weight:700;color:var(--color-ink-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem}.viz-chart-title{font-family:var(--font-display);font-size:1.35rem;font-weight:800;color:var(--color-ink)}.viz-chart-type-badge{font-family:var(--font-display);font-size:.78rem;font-weight:800;color:#fff;background:var(--color-accent);border-radius:var(--radius-pill);padding:.3rem .9rem;white-space:nowrap;flex-shrink:0;margin-top:.2rem}.viz-chart-body{padding:1.75rem 1.5rem}.viz-chart-footer{font-size:.8rem;color:var(--color-ink-muted);font-family:var(--font-display);font-weight:600;padding:.75rem 2rem 1.25rem;border-top:1px solid var(--color-border)}.viz-freq-table{display:flex;flex-direction:column;border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.viz-freq-header{display:grid;grid-template-columns:1fr 60px 60px;gap:.5rem;padding:.6rem 1rem;background:var(--color-bg);border-bottom:1.5px solid var(--color-border);font-family:var(--font-display);font-size:.75rem;font-weight:800;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.08em}.viz-freq-row{display:grid;grid-template-columns:1fr 60px 60px;grid-template-rows:auto auto;gap:.35rem .5rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);transition:background .12s}.viz-freq-row:last-child{border-bottom:none}.viz-freq-row:hover{background:var(--color-bg)}.viz-freq-label{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-ink)}.viz-freq-count{font-family:var(--font-display);font-size:.9rem;font-weight:800;color:var(--color-accent);text-align:right}.viz-freq-pct{font-size:.85rem;color:var(--color-ink-muted);font-weight:600;text-align:right}.viz-freq-bar-wrap{grid-column:1 / -1;height:5px;background:var(--color-border);border-radius:99px;overflow:hidden}.viz-freq-bar{height:100%;background:var(--color-accent);border-radius:99px;transition:width .4s var(--ease-out)}.viz-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.viz-stat-card{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;transition:border-color .15s,transform .15s}.viz-stat-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.viz-stat-label{font-family:var(--font-display);font-size:.7rem;font-weight:800;color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.09em}.viz-stat-value{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--color-accent);line-height:1}.recharts-wrapper,.recharts-wrapper *,.recharts-surface,.recharts-surface *{outline:none!important}.viz-empty{font-size:.9rem;color:var(--color-ink-muted);font-style:italic;padding:1rem 0}@keyframes viz-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 560px){.viz-card{padding:1.25rem}.viz-chart-header{flex-direction:column}.viz-stats-grid{grid-template-columns:repeat(2,1fr)}}.wm-map-container{position:relative;width:100%;aspect-ratio:2 / 1;border-radius:var(--radius-md);overflow:hidden;background:transparent;margin:1.25rem 0}.wm-map-container--admin{aspect-ratio:2.4 / 1}.wm-closest-label{text-align:center;margin:.5rem 0;font-size:1rem}.wm-card-wide{max-width:1000px!important}.wm-hint{font-size:.88rem;color:var(--color-ink-mid);margin-bottom:.25rem}.wm-coords-label{font-size:.85rem;color:var(--color-accent);font-weight:600;margin-top:-.5rem;margin-bottom:.25rem}.wm-error{font-size:.85rem;color:#c0392b;margin-top:.5rem;text-align:center}.wm-admin-wrap{background:var(--color-surface);border-radius:var(--radius-lg);border:2px solid var(--color-border);padding:2rem}.wm-admin-header{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-bottom:.25rem}.wm-clear-btn{font-size:.78rem;font-family:var(--font-body);font-weight:600;color:#c0392b;border:1.5px solid #e8c0bb;border-radius:var(--radius-pill);padding:.25rem .85rem;cursor:pointer;background:#fdf2f1;transition:background .15s,border-color .15s}.wm-clear-btn:hover:not(:disabled){background:#fae0de;border-color:#c0392b}.wm-clear-btn:disabled{opacity:.35;cursor:not-allowed}.wm-city-select{font-size:.82rem;font-family:var(--font-body);font-weight:600;color:var(--color-ink);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-pill);padding:.25rem .75rem;cursor:pointer;outline:none;transition:border-color .15s;margin-right:auto}.wm-city-select:focus,.wm-city-select:hover{border-color:var(--color-accent)}.wm-pin-count{font-size:.78rem;font-weight:700;background:var(--color-accent-icon);color:var(--color-accent);border-radius:var(--radius-pill);padding:.25rem .75rem;letter-spacing:.04em;white-space:nowrap}html,body{height:100%;overflow:hidden}html{font-size:150%}body{font-family:DM Sans,sans-serif;background:#fdfaf4;color:#1a1714}#page-home{display:flex;flex-direction:column;height:100vh;overflow:hidden;position:relative;background:#fdfaf4}#page-home .page-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}#page-tutoring,#page-about{height:100vh;overflow:hidden;position:relative;background:#fdfaf4}#page-tutoring .page-content,#page-about .page-content{position:relative;z-index:1;width:100%;height:100%}.nb-canvas{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.nav{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:3.2rem;flex-shrink:0;background:#fdfaf4;z-index:10}.nav-logo{display:flex;align-items:center;gap:.5rem;cursor:pointer;text-decoration:none}.logo-name{font-family:Caveat,cursive;font-size:1.1rem;font-weight:700;color:#1a1714}.nav-links{display:flex;list-style:none}.nav-links li{font-family:DM Sans,sans-serif;font-size:.7rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:#1a171461;cursor:pointer;padding:0 1rem;height:3.2rem;display:flex;align-items:center;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.nav-links li:hover{color:#c45c1a}.nav-links li.active{color:#c45c1a;border-bottom-color:#c45c1a}#page-home .page-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.hero-face{width:5.5rem;height:5.5rem;margin-bottom:.5rem}.hero-hi{font-family:Caveat,cursive;font-size:clamp(2.5rem,6vw,4.2rem);font-weight:700;color:#1a1714;line-height:1;letter-spacing:-.01em}.hero-sub{font-family:Caveat,cursive;font-size:1rem;color:#1a17147a;margin-top:.25rem;display:flex;align-items:center;gap:.5rem}.subject-cloud{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;max-width:36rem;margin-top:1.1rem}.sbubble{font-family:DM Sans,sans-serif;font-size:.55rem;padding:.28rem .7rem;border-radius:20px;border:1px solid rgba(26,23,20,.13);color:#1a171485;background:#fff;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;cursor:default}.sbubble:hover{background:#fdf0e7;border-color:#c45c1a40;color:#c45c1a}.sbubble.math{border-color:#c45c1a33;color:#c45c1a;background:#fdf0e7}.sbubble.physics{border-color:#3a78b438;color:#2a6496;background:#eef4fb}.sbubble.cs{border-color:#28a06438;color:#1e7e50;background:#eef8f3}.sbubble.lang{border-color:#9650b438;color:#7a3fa0;background:#f5eefb}.sbubble.test{border-color:#b48c1440;color:#8a6a00;background:#fdf8e6}.ticker-wrap{height:3.2rem;background:#fdfaf4;overflow:hidden;flex-shrink:0;display:flex;align-items:center}.ticker-track{display:flex;white-space:nowrap;animation:ticker 60s linear infinite;align-items:center}.ticker-track:hover{animation-play-state:paused}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}.t-item-text{font-family:DM Sans,sans-serif;font-size:.62rem;font-weight:400;color:#1a171499;padding:0 1rem;display:inline-flex;align-items:center}.t-accent{color:#c45c1a;margin-right:3px;font-weight:500}.about-left{width:25%;min-width:25%;flex-shrink:0;background:#1a1714;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:.75rem;overflow-y:auto}.about-face{width:5rem;height:5rem}.about-name{font-family:Caveat,cursive;font-size:1.5rem;font-weight:700;color:#fdfaf4;text-align:center;line-height:1.1}.about-title{font-size:.6rem;color:#fdfaf466;letter-spacing:.1em;text-transform:uppercase;text-align:center}.about-divider{width:2rem;height:1px;background:rgba(253,250,244,.12);margin:.25rem 0}.about-facts{display:flex;flex-direction:column;gap:.5rem;width:100%}.fact-row{display:flex;align-items:flex-start;gap:.6rem}.fact-icon{width:1.1rem;height:1.1rem;flex-shrink:0;margin-top:1px}.fact-text{font-size:.6rem;color:#fdfaf48c;line-height:1.6;font-weight:300}.fact-text strong{color:#fdfaf4d9;font-weight:500;display:block;font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1px}.about-right{flex:1;min-width:0;padding:2rem 3rem;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;gap:1.25rem}.about-section-title{font-size:.5rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:#c45c1a;margin-bottom:.55rem;display:flex;align-items:center;gap:.4rem}.about-section-title:after{content:"";flex:1;height:1px;background:rgba(26,23,20,.08)}.timeline{position:relative;padding-left:1.4rem}.timeline:before{content:"";position:absolute;left:.3rem;top:.4rem;bottom:.4rem;width:1px;background:rgba(26,23,20,.1)}.tl-item{position:relative;margin-bottom:1.25rem}.tl-item:last-child{margin-bottom:0}.tl-item:before{content:"";position:absolute;left:-1.15rem;top:.38rem;width:7px;height:7px;border-radius:50%;background:#c45c1a;border:2px solid #fdfaf4;box-shadow:0 0 0 1px #c45c1a4d}.tl-dates{font-size:.5rem;color:#1a171459;letter-spacing:.06em;margin-bottom:.2rem;font-weight:500}.tl-role{font-family:Caveat,cursive;font-size:.9rem;font-weight:600;color:#1a1714;line-height:1.2;margin-bottom:.15rem}.tl-where{font-size:.55rem;color:#1a171466;margin-bottom:.3rem}.tl-desc{font-size:.58rem;color:#1a171480;line-height:1.65;font-weight:300}.skill-grid{display:flex;flex-wrap:wrap;gap:.3rem}.skill-pill{font-size:.55rem;padding:.22rem .6rem;border-radius:4px;background:#f2ede4;color:#1a17148c}.lang-row{display:flex;flex-direction:column;gap:.35rem}.lang-item{display:flex;align-items:center;gap:.6rem}.lang-name{font-size:.62rem;font-weight:500;color:#1a1714;width:5rem;flex-shrink:0}.lang-level{font-size:.52rem;color:#1a171461;width:4rem}.lang-bar{flex:1;height:3px;background:rgba(26,23,20,.08);border-radius:2px;overflow:hidden}.lang-fill{height:100%;background:#c45c1a;border-radius:2px}.hobby-row{display:flex;flex-wrap:wrap;gap:.35rem}.hobby-pill{font-size:.55rem;padding:.22rem .65rem;border-radius:20px;border:1px solid rgba(26,23,20,.11);color:#1a171480;background:#f2ede4}.tut-nav-item{cursor:pointer;border-radius:6px;padding:.4rem .5rem;transition:background .15s}.tut-nav-item:hover{background:rgba(255,255,255,.06)}.tut-nav-item.active{background:rgba(255,255,255,.1)}.tut-nav-item.active .fact-text strong{color:#fdfaf4}.tut-nav-item.active .fact-text{color:#fdfaf4b3}.tut-sec-card{background:#fff;border:1px solid rgba(26,23,20,.08);border-radius:8px;padding:1rem 1.1rem}.tut-sec-cat{font-size:.5rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem}.tut-sec-cat.math{color:#c45c1a}.tut-sec-cat.phys{color:#2a6496}.tut-sec-cat.cs{color:#1e7e50}.tut-sec-cat.test{color:#8a6a00}.tut-sec-pills{display:flex;flex-wrap:wrap;gap:.3rem}.spill{font-size:.55rem;padding:.25rem .6rem;border-radius:4px;background:#f2ede4;color:#1a17148c;white-space:nowrap}.spill.math{background:#fdf0e7;color:#c45c1a}.spill.phys{background:#eef4fb;color:#2a6496}.spill.cs{background:#eef8f3;color:#1e7e50}.spill.lang{background:#f5eefb;color:#7a3fa0}.spill.test{background:#fdf8e6;color:#8a6a00}.notes-placeholder{width:160px;height:200px;background:#f9f6ef;border:1.5px dashed rgba(26,23,20,.15);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notes-inner{text-align:center;padding:1rem}.testimonial-card{background:#fff;border:1px solid rgba(26,23,20,.08);border-radius:10px;padding:1.5rem 1.75rem}.test-quote{font-family:Caveat,cursive;font-size:1rem;color:#1a1714;line-height:1.55;margin-bottom:.75rem}.test-attr{font-size:.55rem;color:#1a171466;letter-spacing:.04em}.test-controls{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(26,23,20,.07)}.test-btn{font-family:DM Sans,sans-serif;font-size:.65rem;background:#f2ede4;border:1px solid rgba(26,23,20,.1);border-radius:6px;padding:.3rem .7rem;cursor:pointer;color:#1a171499;transition:background .15s}.test-btn:hover{background:#e8dfd4}.test-dots{display:flex;gap:.35rem}.test-dot{width:6px;height:6px;border-radius:50%;background:rgba(26,23,20,.15);cursor:pointer;transition:background .15s}.test-dot.active{background:#c45c1a}.price-card{background:#fff;border:1px solid rgba(26,23,20,.08);border-radius:10px;padding:1.25rem 1.5rem;flex:1;min-width:160px;display:flex;flex-direction:column;gap:.4rem}.price-card.featured{border-color:#c45c1a4d;background:#fdf8f4}.price-badge{font-size:.45rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#c45c1a;background:#fdf0e7;border-radius:20px;padding:.2rem .6rem;align-self:flex-start}.price-label{font-size:.55rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:#1a171473}.price-amount{font-family:Caveat,cursive;font-size:1.8rem;font-weight:700;color:#1a1714;line-height:1}.price-amount span{font-size:.75rem;color:#1a171466;font-weight:400}.price-desc{font-size:.58rem;color:#1a171480;line-height:1.6;font-weight:300}.price-includes{list-style:none;margin-top:.4rem;display:flex;flex-direction:column;gap:.3rem}.price-includes li{font-size:.55rem;color:#1a17148c;padding-left:.85rem;position:relative}.price-includes li:before{content:"✓";position:absolute;left:0;color:#c45c1a;font-size:.5rem}.policy-card{background:#fff;border:1px solid rgba(26,23,20,.08);border-radius:8px;padding:1rem 1.25rem}.policy-title{font-family:Caveat,cursive;font-size:.85rem;font-weight:600;color:#1a1714;margin-bottom:.4rem}.policy-text{font-size:.58rem;color:#1a171480;line-height:1.7;font-weight:300}.form-row{margin-bottom:.65rem}.form-row label{display:block;font-size:.55rem;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:#1a171466;margin-bottom:.25rem}.form-row input,.form-row select,.form-row textarea{width:100%;font-family:DM Sans,sans-serif;font-size:.65rem;padding:.45rem .7rem;background:#fff;border:1px solid rgba(26,23,20,.12);border-radius:6px;color:#1a1714;outline:none;transition:border-color .2s}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:#c45c1a66}.form-row textarea{resize:none;height:4rem}.form-submit{margin-top:.75rem;font-family:Caveat,cursive;font-size:.9rem;font-weight:700;padding:.5rem 1.5rem;background:#1a1714;color:#fdfaf4;border:none;border-radius:6px;cursor:pointer;transition:background .2s;letter-spacing:.01em}.form-submit:hover{background:#c45c1a}.japan-shell{display:flex;flex-direction:column;height:100vh;width:100%;background:#f5f2ed;font-family:DM Mono,monospace;position:relative;overflow:hidden}.japan-topbar{height:28px;background:#111;flex-shrink:0}.japan-tabs{display:flex;gap:0;padding:0 16px;flex-shrink:0;background:#f5f2ed;border-bottom:1.5px solid #ede9e2}.japan-tab{all:unset;cursor:pointer;font-size:13px;font-weight:400;color:#999;letter-spacing:.02em;padding:18px 16px 16px;position:relative;transition:color .15s ease}.japan-tab:hover{color:#333}.japan-tab--active{color:#111}.japan-tab--active:after{content:"";position:absolute;bottom:-1.5px;left:16px;right:16px;height:1.5px;background:#111}.japan-content{flex:1;position:relative;overflow:hidden}.japan-map-wrapper,.japan-map{width:100%;height:100%}.japan-map .maplibregl-ctrl-group{border:none!important;box-shadow:0 2px 8px #0000001a!important;border-radius:6px!important}.japan-map .maplibregl-ctrl-group button{background:#fff!important;border:none!important;width:28px!important;height:28px!important}.japan-map .maplibregl-ctrl-group button:hover{background:#f5f2ed!important}.japan-map .maplibregl-ctrl-attrib{font-size:10px!important;background:rgba(245,242,237,.7)!important;color:#aaa!important;font-family:DM Mono,monospace!important}.japan-map .maplibregl-ctrl-attrib a{color:#aaa!important}.japan-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ccc;font-size:13px;letter-spacing:.08em}.japan-new-btn{all:unset;cursor:pointer;position:absolute;bottom:28px;left:50%;transform:translate(-50%);background:#1a1a1a;color:#fff;font-size:13px;font-family:DM Mono,monospace;letter-spacing:.03em;padding:13px 24px;border-radius:999px;display:flex;align-items:center;gap:6px;box-shadow:0 4px 16px #00000040;transition:background .15s ease,transform .1s ease;z-index:1000}.japan-new-btn:hover{background:#333}.japan-new-btn:active{transform:translate(-50%) scale(.97)}.japan-new-plus{font-size:16px;line-height:1;margin-top:-1px}.jn-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(30,26,22,.35);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:2000;display:flex;align-items:center;justify-content:center}.jn-modal{background:#f5f2ed;width:540px;max-width:calc(100vw - 32px);max-height:90vh;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 12px 48px #0000002e;overflow:hidden}.jn-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #e8e4dd;flex-shrink:0}.jn-modal-title{font-family:DM Mono,monospace;font-size:13px;color:#111;letter-spacing:.04em}.jn-modal-close{all:unset;cursor:pointer;font-size:12px;color:#999;padding:4px;transition:color .1s}.jn-modal-close:hover{color:#111}.jn-modal-body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px}.jn-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e8e4dd;flex-shrink:0}.jn-field{display:flex;flex-direction:column;gap:6px}.jn-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.jn-label{font-family:DM Mono,monospace;font-size:11px;color:#999;letter-spacing:.06em}.jn-input{all:unset;font-family:DM Mono,monospace;font-size:13px;color:#111;background:#ede9e2;border-radius:6px;padding:9px 12px;width:100%;box-sizing:border-box;transition:background .15s}.jn-input:focus{background:#e6e1d8}.jn-input::-moz-placeholder{color:#bbb}.jn-input::placeholder{color:#bbb}.jn-textarea{font-family:DM Mono,monospace;font-size:13px;color:#111;background:#ede9e2;border:none;border-radius:6px;padding:9px 12px;width:100%;box-sizing:border-box;resize:vertical;outline:none;transition:background .15s;line-height:1.6}.jn-textarea:focus{background:#e6e1d8}.jn-textarea::-moz-placeholder{color:#bbb}.jn-textarea::placeholder{color:#bbb}.jn-transit-grid{display:flex;flex-direction:column;gap:8px}.jn-transit-item{display:flex;align-items:center;gap:10px}.jn-transit-btn{all:unset;cursor:pointer;font-family:DM Mono,monospace;font-size:12px;color:#888;background:#ede9e2;border-radius:6px;padding:7px 14px;min-width:68px;text-align:center;transition:background .12s,color .12s}.jn-transit-btn:hover{background:#e6e1d8;color:#333}.jn-transit-btn--on{background:#1a1a1a;color:#f5f2ed}.jn-transit-time{flex:1;font-size:12px!important;padding:7px 10px!important}.jn-link-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.jn-link-text{width:120px!important;flex-shrink:0}.jn-link-url{flex:1}.jn-link-remove{all:unset;cursor:pointer;font-size:11px;color:#bbb;padding:4px;transition:color .1s}.jn-link-remove:hover{color:#888}.jn-add-link{all:unset;cursor:pointer;font-family:DM Mono,monospace;font-size:11px;color:#999;letter-spacing:.04em;transition:color .1s}.jn-add-link:hover{color:#333}.jn-cancel-btn{all:unset;cursor:pointer;font-family:DM Mono,monospace;font-size:12px;color:#999;padding:9px 18px;border-radius:6px;transition:color .1s}.jn-cancel-btn:hover{color:#333}.jn-save-btn{all:unset;cursor:pointer;font-family:DM Mono,monospace;font-size:12px;background:#1a1a1a;color:#f5f2ed;padding:9px 22px;border-radius:6px;transition:background .12s}.jn-save-btn:hover{background:#333}.jn-save-btn:disabled{opacity:.45;cursor:not-allowed}.jn-error{font-family:DM Mono,monospace;font-size:11px;color:#c0392b;margin:0}.jn-marker{position:relative;width:0;height:0;cursor:pointer}.jn-marker-ring{position:absolute;width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(192,57,43,.4);transform:translate(-50%,-50%)}.jn-marker-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#c0392b;transform:translate(-50%,-50%)}.jn-marker-label{position:absolute;left:8px;top:-18px;font-family:DM Mono,monospace;font-size:10px;color:#1a1a1a;white-space:nowrap;letter-spacing:.03em;pointer-events:none}.jn-coord-preview{font-family:DM Mono,monospace;font-size:10px;color:#888;margin-top:4px}.jn-coord-preview--warn{color:#c0392b}.jn-detail-modal .jn-modal-title{font-size:15px;letter-spacing:.01em}.jn-detail-dates{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.jn-detail-date-chip{display:flex;flex-direction:column;gap:2px}.jn-detail-date-label{font-family:DM Mono,monospace;font-size:9px;color:#bbb;letter-spacing:.08em;text-transform:uppercase}.jn-detail-date-sep{font-family:DM Mono,monospace;font-size:13px;color:#ccc;margin-top:10px}.jn-detail-row{display:flex;align-items:center;gap:10px}.jn-detail-row-icon{font-size:14px;flex-shrink:0}.jn-detail-row-text{font-family:DM Mono,monospace;font-size:13px;color:#333}.jn-detail-row-link{font-family:DM Mono,monospace;font-size:12px;color:#888;text-decoration:underline;text-underline-offset:3px;transition:color .1s}.jn-detail-row-link:hover{color:#111}.jn-detail-transit-row{display:flex;flex-wrap:wrap;gap:8px}.jn-detail-transit-chip{display:flex;align-items:center;gap:5px;background:#ede9e2;border-radius:6px;padding:5px 10px;font-size:13px}.jn-detail-transit-time{font-family:DM Mono,monospace;font-size:11px;color:#888}.jn-detail-section{display:flex;flex-direction:column;gap:8px}.jn-detail-plan{font-family:DM Mono,monospace;font-size:12px;color:#555;line-height:1.7;margin:0;white-space:pre-wrap}.jn-detail-chips{display:flex;flex-wrap:wrap;gap:8px}.jn-detail-link-chip{font-family:DM Mono,monospace;font-size:11px;color:#555;background:#ede9e2;border-radius:20px;padding:5px 12px;text-decoration:none;transition:background .12s,color .12s;letter-spacing:.02em}.jn-detail-link-chip:hover{background:#1a1a1a;color:#f5f2ed}.jn-plan-list{width:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column}.jn-plan-row{display:flex;align-items:stretch;gap:0;padding:18px 24px;cursor:pointer;border-bottom:1px solid #ede9e2;transition:background .12s;position:relative}.jn-plan-row:hover{background:#ede9e2}.jn-plan-date-col{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;flex-shrink:0}.jn-plan-month{font-family:DM Mono,monospace;font-size:9px;color:#bbb;letter-spacing:.1em;text-transform:uppercase}.jn-plan-day{font-family:DM Mono,monospace;font-size:22px;color:#333;line-height:1;margin-top:1px}.jn-plan-nodate{font-family:DM Mono,monospace;font-size:14px;color:#ccc}.jn-plan-divider{width:1px;background:#e0dcd5;margin:0 20px;flex-shrink:0}.jn-plan-content{flex:1;display:flex;flex-direction:column;gap:5px;justify-content:center;min-width:0}.jn-plan-name{font-family:DM Mono,monospace;font-size:13px;color:#111;letter-spacing:.02em}.jn-plan-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.jn-plan-meta-item{font-family:DM Mono,monospace;font-size:11px;color:#999}.jn-plan-depart{color:#bbb}.jn-plan-snippet{font-family:DM Mono,monospace;font-size:11px;color:#bbb;margin:0;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jn-plan-arrow{font-size:18px;color:#ccc;display:flex;align-items:center;padding-left:12px;flex-shrink:0;transition:color .12s}.jn-plan-row:hover .jn-plan-arrow{color:#888}.jn-modal-header-actions{display:flex;align-items:center;gap:10px}.jn-edit-btn{all:unset;cursor:pointer;font-size:14px;color:#bbb;padding:4px 6px;border-radius:4px;transition:color .1s,background .1s;line-height:1}.jn-edit-btn:hover{color:#333;background:#ede9e2}.th-shell{--th-bg: #F7F5F2;--th-surface: #FFFFFF;--th-border: #E8E4DF;--th-ink: #1A1714;--th-ink-2: #6B6560;--th-ink-3: #ABA6A0;--th-accent: #8B6F47;--th-accent-light: #F0EAE1;--th-accent-green: #4A7C59;--th-accent-green-light: #EBF3EE;--th-pending-dot: #C97B3A;--th-radius: 4px;--th-font-display: "Playfair Display", Georgia, serif;--th-font-body: "DM Sans", system-ui, sans-serif;--th-font-mono: "DM Mono", monospace;--bg: var(--th-bg);--surface: var(--th-surface);--border: var(--th-border);--ink: var(--th-ink);--ink-2: var(--th-ink-2);--ink-3: var(--th-ink-3);--accent: var(--th-accent);--pending-dot: var(--th-pending-dot);--radius: var(--th-radius);--font-display: var(--th-font-display);--font-body: var(--th-font-body);display:grid;grid-template-columns:60px 1fr;height:100vh;max-height:100vh;overflow:hidden;background:var(--th-bg);font-family:var(--th-font-body);color:var(--th-ink);font-size:14px;line-height:1.6}.th-sidebar{background:var(--th-surface);border-right:1px solid var(--th-border);display:flex;flex-direction:column;align-items:center;padding:20px 0 16px;position:sticky;top:0;height:100vh;overflow-y:auto;width:60px}.th-shell .sidebar-brand{padding:0 0 20px;width:100%;display:flex;justify-content:center}.th-shell .sidebar-brand h1,.th-shell .sidebar-brand p{display:none}.th-shell .nav{flex:1;padding:16px 0;width:100%}.th-shell .nav-item{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;padding:12px 0!important;cursor:pointer!important;color:var(--th-ink-3)!important;font-size:0!important;font-weight:400!important;font-family:var(--th-font-body)!important;transition:color .15s,background .15s!important;position:relative!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;border:none!important;background:none!important;width:100%!important;text-align:center!important;border-radius:0!important;line-height:1!important;box-shadow:none!important}.th-shell .nav-item:hover{color:var(--th-ink)!important;background:var(--th-bg)!important}.th-shell .nav-item.active{color:var(--th-accent)!important;font-weight:500!important;background:none!important}.th-shell .nav-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--th-accent);border-radius:0 2px 2px 0}.th-shell .nav-icon{width:18px;height:18px;opacity:.55;flex-shrink:0}.th-shell .nav-item:hover .nav-icon{opacity:.9}.th-shell .nav-item.active .nav-icon{opacity:1}.th-shell .badge{position:absolute;top:7px;right:10px;background:var(--th-pending-dot);color:#fff;font-family:var(--th-font-mono);font-size:8px;font-weight:400;padding:1px 4px;border-radius:8px;min-width:14px;text-align:center;line-height:1.4}.th-shell .sidebar-footer{padding:16px 0 0;border-top:1px solid var(--th-border);width:100%;display:flex;justify-content:center;font-size:0;color:transparent}.th-main{padding:0;width:100%;background:var(--th-bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}.th-topbar{background:var(--th-surface);border-bottom:1px solid var(--th-border);padding:14px 48px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.th-topbar-left{display:flex;align-items:center;gap:14px}.th-topbar-avatar{width:42px;height:42px;border-radius:50%;background:var(--th-ink);color:var(--th-surface);display:flex;align-items:center;justify-content:center;font-family:var(--th-font-mono);font-size:13px;font-weight:400;flex-shrink:0;overflow:hidden;line-height:1}.th-topbar-name{font-family:var(--th-font-display);font-size:15px;font-weight:700;font-style:italic;color:var(--th-ink);line-height:1.2}.th-topbar-name span{color:var(--th-accent);font-weight:400}.th-topbar-subjects{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;letter-spacing:.04em;margin-top:2px}.th-topbar-right{display:flex;align-items:center;gap:20px;flex-shrink:0}.th-topbar-date{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;letter-spacing:.04em}.th-topbar-pending{display:flex;align-items:center;gap:6px;font-family:var(--th-font-mono);font-size:10px;color:var(--th-pending-dot);font-weight:400;letter-spacing:.04em}.th-topbar-pending-dot{width:7px;height:7px;border-radius:50%;background:var(--th-pending-dot);flex-shrink:0}.th-main-content{padding:48px 56px;flex:1;overflow-y:auto;min-height:0}.th-shell .page-header{margin-bottom:36px}.th-shell .page-header h2{font-family:var(--th-font-display);font-size:20px;font-weight:700;letter-spacing:-.03em;color:var(--th-ink);margin:0}.th-shell .page-header p{font-family:var(--th-font-mono);color:var(--th-ink-2);font-size:11px;margin-top:4px;font-weight:300;letter-spacing:.04em}.th-shell .lock-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;gap:16px}.th-shell .lock-icon{width:40px;height:40px;color:var(--th-ink-3)}.th-shell .lock-state p{color:var(--th-ink-3);font-size:13px;font-weight:300}.th-shell .lock-state button{margin-top:4px;font-family:var(--th-font-body)!important;font-size:12px!important;background:none!important;border:1px solid var(--th-border)!important;border-radius:var(--th-radius)!important;padding:8px 20px!important;cursor:pointer!important;color:var(--th-ink-2)!important;transition:border-color .15s,color .15s}.th-shell .lock-state button:hover{border-color:var(--th-accent)!important;color:var(--th-accent)!important}.th-shell .login-wrap{max-width:380px}.th-shell .form-group{margin-bottom:20px}.th-shell .form-group label{display:block;font-family:var(--th-font-mono);font-size:9px;font-weight:300;letter-spacing:.12em;text-transform:uppercase;color:var(--th-ink-2);margin-bottom:8px}.th-shell .form-group input{width:100%;font-family:var(--th-font-body);font-size:14px;border:1px solid var(--th-border);border-radius:var(--th-radius);padding:10px 14px;background:var(--th-surface);color:var(--th-ink);outline:none;transition:border-color .15s}.th-shell .form-group input:focus{border-color:var(--th-accent)}.th-shell .form-error{font-size:12px;color:#c0392b;margin-top:6px}.th-shell .btn-primary{font-family:var(--th-font-body)!important;font-size:13px!important;font-weight:500!important;background:var(--th-ink)!important;color:#fff!important;border:none!important;border-radius:var(--th-radius)!important;padding:11px 28px!important;cursor:pointer!important;transition:opacity .15s!important;letter-spacing:.02em!important;display:inline-block;line-height:1.4!important}.th-shell .btn-primary:hover{opacity:.8}.th-shell .btn-primary:disabled{opacity:.5!important;cursor:not-allowed!important}.th-shell .btn-ghost{font-family:var(--th-font-body)!important;font-size:12px!important;background:none!important;border:1px solid var(--th-border)!important;border-radius:var(--th-radius)!important;padding:9px 20px!important;cursor:pointer!important;color:var(--th-ink-2)!important;transition:border-color .15s,color .15s!important;line-height:1.4!important}.th-shell .btn-ghost:hover{border-color:var(--th-ink)!important;color:var(--th-ink)!important}.th-shell .btn-ghost:disabled{opacity:.5!important;cursor:not-allowed!important}.th-shell .tbl-btn{background:none!important;border:none!important;cursor:pointer!important;font-size:12px!important;color:var(--th-ink-3)!important;margin-right:10px;transition:color .1s;font-family:var(--th-font-body)!important;padding:0!important}.th-shell .tbl-btn:hover{color:var(--th-ink)!important}.th-shell .tbl-btn.tbl-btn-danger:hover{color:#c0392b!important}.th-shell .icon-btn{background:none!important;border:none!important;cursor:pointer!important;color:var(--th-ink-3)!important;display:inline-flex!important;align-items:center!important;gap:4px;font-size:11px!important;font-family:var(--th-font-body)!important;transition:color .1s;padding:0!important;line-height:1!important}.th-shell .icon-btn:hover{color:var(--th-ink)!important}.th-shell .back-btn{display:inline-flex!important;align-items:center!important;gap:6px;background:none!important;border:none!important;cursor:pointer!important;color:var(--th-ink-2)!important;font-size:13px!important;font-family:var(--th-font-body)!important;padding:0!important;transition:color .1s}.th-shell .back-btn:hover{color:var(--th-ink)!important}.th-shell .toggle-btn{padding:6px 14px!important;font-size:12px!important;font-family:var(--th-font-body)!important;border:none!important;cursor:pointer!important;background:var(--th-surface)!important;color:var(--th-ink-2)!important;transition:all .15s;border-radius:0!important;line-height:1.4!important}.th-shell .toggle-btn.active{background:var(--th-ink)!important;color:#fff!important}.th-shell .stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}.th-shell .stat-card{background:var(--th-surface);border:1px solid var(--th-border);border-radius:var(--th-radius);padding:20px 22px}.th-shell .stat-card .label{font-family:var(--th-font-mono);font-size:9px;font-weight:300;text-transform:uppercase;letter-spacing:.12em;color:var(--th-ink-3);margin-bottom:8px;display:block}.th-shell .stat-card .value{font-family:var(--th-font-display);font-size:28px;font-weight:700;letter-spacing:-.04em;color:var(--th-ink);line-height:1;display:block}.th-shell .stat-card .sub{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);margin-top:4px;font-weight:300;letter-spacing:.04em;display:block}.th-shell .section-title{font-family:var(--th-font-mono);font-size:9px;font-weight:300;text-transform:uppercase;letter-spacing:.12em;color:var(--th-ink-3);margin-bottom:16px}.th-shell .month-row{display:flex;align-items:center;gap:12px;margin-bottom:20px}.th-shell .month-row select{font-family:var(--th-font-body);font-size:13px;border:1px solid var(--th-border);border-radius:var(--th-radius);padding:7px 28px 7px 12px;background:var(--th-surface);color:var(--th-ink);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' viewBox='0 0 10 6'%3E%3Cpath stroke='%236B6560' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.th-shell .student-row{display:flex;align-items:center;gap:14px;margin-bottom:14px}.th-shell .student-name{width:120px;font-size:13px;color:var(--th-ink);flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.th-shell .bar-track{flex:1;height:6px;background:var(--th-border);border-radius:3px;overflow:hidden}.th-shell .bar-fill{height:100%;background:var(--th-accent);border-radius:3px;transition:width .6s cubic-bezier(.25,.8,.25,1)}.th-shell .student-hours{width:52px;font-family:var(--th-font-mono);font-size:11px;color:var(--th-ink-2);text-align:right;flex-shrink:0;font-weight:300;letter-spacing:.04em}.th-shell .settings-block{background:var(--th-surface);border:1px solid var(--th-border);border-radius:var(--th-radius);padding:22px 24px;margin-bottom:16px}.th-shell .settings-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.th-shell .settings-row:last-child{margin-bottom:0}.th-shell .settings-row label{font-size:12px;color:var(--th-ink-2);width:130px;flex-shrink:0;text-transform:none;letter-spacing:normal;font-weight:400}.th-shell .settings-row input,.th-shell .settings-row select{font-family:var(--th-font-body);font-size:13px;border:1px solid var(--th-border);border-radius:var(--th-radius);padding:7px 12px;background:var(--th-bg);color:var(--th-ink);outline:none;transition:border-color .15s;flex:1}.th-shell .settings-row input:focus{border-color:var(--th-accent)}.th-shell .settings-textarea{font-family:var(--th-font-body);font-size:13px;line-height:1.65;border:1px solid var(--th-border);border-radius:var(--th-radius);padding:10px 12px;background:var(--th-bg);color:var(--th-ink);outline:none;resize:vertical;flex:1;transition:border-color .15s;width:100%}.th-shell .settings-textarea:focus{border-color:var(--th-accent)}.th-shell .email-item{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--th-border);cursor:pointer;transition:background .1s}.th-shell .email-item:first-child{border-top:1px solid var(--th-border)}.th-shell .email-item:hover{background:var(--th-accent-light);margin:0 -12px;padding:16px 12px}.th-shell .email-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.th-shell .email-meta{flex:1;min-width:0}.th-shell .email-meta .client{font-size:13.5px;font-weight:500;color:var(--th-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.th-shell .email-meta .preview{font-size:12px;color:var(--th-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:300;margin-top:1px}.th-shell .email-right{text-align:right;flex-shrink:0}.th-shell .email-right .date{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;letter-spacing:.04em}.th-shell .email-right .duration{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-2);margin-top:2px;font-weight:300}.th-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(26,23,20,.4);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px;animation:thFadeIn .15s ease}.th-modal{background:#FFFFFF;border-radius:6px;width:100%;max-width:620px;max-height:88vh;overflow-y:auto;box-shadow:0 16px 48px #0000001f;animation:thSlideUp .2s ease;font-family:DM Sans,system-ui,sans-serif;font-size:14px;color:#1a1714}.th-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 28px 20px;border-bottom:1px solid #E8E4DF}.th-modal-header h3{font-family:Playfair Display,Georgia,serif;font-size:17px;font-weight:700;font-style:italic;letter-spacing:-.01em;color:#1a1714;margin:0}.th-modal-meta{display:flex;gap:20px;margin-top:8px}.th-modal-meta span{font-family:DM Mono,monospace;font-size:10px;color:#6b6560;font-weight:300;letter-spacing:.04em}.th-modal-meta strong{font-weight:400;color:#1a1714}.th-modal-close{background:none!important;border:none!important;cursor:pointer!important;color:#aba6a0!important;font-size:20px!important;line-height:1!important;padding:2px 4px!important;margin-left:16px;transition:color .1s;flex-shrink:0}.th-modal-close:hover{color:#1a1714!important}.th-modal-body{padding:24px 28px}.th-modal-body .field-label{font-family:DM Mono,monospace;font-size:9px;font-weight:300;text-transform:uppercase;letter-spacing:.12em;color:#aba6a0;margin-bottom:8px;display:block}.th-modal-body textarea{width:100%;font-family:DM Sans,system-ui,sans-serif;font-size:13px;line-height:1.65;border:1px solid #E8E4DF;border-radius:4px;padding:12px 14px;background:#F7F5F2;color:#1a1714;outline:none;resize:vertical;min-height:180px;transition:border-color .15s;margin-bottom:20px;display:block}.th-modal-body textarea:focus{border-color:#8b6f47}.th-body-readonly{font-family:DM Sans,system-ui,sans-serif;font-size:13px;line-height:1.65;border:1px solid #E8E4DF;border-radius:4px;padding:12px 14px;background:#F7F5F2;color:#1a1714;min-height:180px;white-space:pre-wrap;margin-bottom:20px}.th-modal-client-row{display:flex;gap:10px;align-items:center;margin-bottom:20px}.th-client-pill{display:inline-flex;align-items:center;gap:6px;background:#EBF3EE;color:#4a7c59;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500}.th-client-unknown{background:#F0EAE1!important;color:#8b6f47!important}.th-client-input{font-family:DM Sans,system-ui,sans-serif;font-size:13px;border:1px solid #E8E4DF;border-radius:4px;padding:7px 12px;background:#F7F5F2;color:#1a1714;outline:none;flex:1;transition:border-color .15s}.th-client-input:focus{border-color:#8b6f47}.th-upload-area{border:1px dashed #E8E4DF;border-radius:4px;padding:16px;text-align:center;cursor:pointer;margin-bottom:20px;transition:border-color .15s,background .15s}.th-upload-area:hover{border-color:#8b6f47;background:#F0EAE1}.th-upload-area p{font-size:12px;color:#aba6a0}.th-upload-area strong{color:#6b6560;font-weight:500}.th-uploaded-file{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#F7F5F2;border:1px solid #E8E4DF;border-radius:4px;font-size:12px;color:#6b6560;margin-bottom:6px}.th-uploaded-file button{margin-left:auto;background:none!important;border:none!important;cursor:pointer!important;color:#aba6a0!important;font-size:13px!important;transition:color .1s;padding:0!important;line-height:1!important}.th-uploaded-file button:hover{color:#1a1714!important}.th-modal-footer{padding:16px 28px 24px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid #E8E4DF}.th-shell .sent-tag{display:inline-block;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;background:#EBF3EE;color:#4a7c59;border-radius:3px;padding:2px 7px}.th-shell .empty-state{text-align:center;padding:64px 0;color:var(--th-ink-3);font-size:13px;font-weight:300}.th-shell .empty-state svg{margin:0 auto 12px;display:block;opacity:.4}.th-shell .client-card{background:var(--th-surface);border:1px solid var(--th-border);border-radius:var(--th-radius);padding:18px 20px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.th-shell .photo-circle{width:64px;height:64px;border-radius:50%;background:var(--th-border);cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center;border:2px solid var(--th-border);transition:border-color .15s}.th-shell .fade-in{animation:thFadeIn .25s ease}@keyframes thFadeIn{0%{opacity:0}to{opacity:1}}@keyframes thSlideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.th-shell .dash-layout{display:flex;flex-direction:column;min-height:100vh}.th-shell .dash-hero{background:var(--th-surface);border-bottom:1px solid var(--th-border);padding:36px 56px 30px 52px;display:flex;align-items:flex-end;gap:32px}.th-shell .dash-eyebrow{font-family:var(--th-font-mono);font-size:10px;font-weight:300;letter-spacing:.14em;text-transform:uppercase;color:var(--th-ink-3);margin-bottom:8px}.th-shell .dash-hero-num{font-family:var(--th-font-display);font-size:80px;font-weight:700;line-height:.88;letter-spacing:-.03em;color:var(--th-ink);display:flex;align-items:flex-start}.th-shell .dash-hero-sup{font-size:42px;font-weight:400;font-style:italic;color:var(--th-accent);margin-right:2px;margin-top:6px}.th-shell .dash-hero-chips{display:flex;align-items:center;gap:8px;margin-top:16px}.th-shell .dash-chip{font-family:var(--th-font-body);font-size:13px;color:var(--th-ink-2);font-weight:300}.th-shell .dash-chip-val{font-weight:600;color:var(--th-ink)}.th-shell .dash-chip-sep{color:var(--th-ink-3);font-size:13px}.th-shell .dash-hero-caption{font-family:var(--th-font-mono);font-size:11px;color:var(--th-ink-3);font-weight:300;margin-top:6px;letter-spacing:.02em}.th-shell .dash-band{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--th-border);flex:1}.th-shell .dash-col{padding:28px 56px 28px 52px;display:flex;flex-direction:column;background:var(--th-bg)}.th-shell .dash-col+.dash-col{border-left:1px solid var(--th-border);padding-left:44px}.th-shell .dash-col-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px}.th-shell .dash-col-title{font-family:var(--th-font-display);font-size:17px;font-weight:400;font-style:italic;color:var(--th-ink)}.th-shell .dash-col-meta{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300}.th-shell .dash-empty{font-size:12px;color:var(--th-ink-3);font-weight:300;padding:12px 0}.th-shell .dash-student-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--th-border)}.th-shell .dash-student-row:last-child{border-bottom:none}.th-shell .dash-rank{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;width:12px;text-align:right;flex-shrink:0}.th-shell .dash-avatar{width:30px;height:30px;border-radius:50%;font-family:var(--th-font-mono);font-size:9px;font-weight:400;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.04em}.th-shell .dash-s-info{flex:1;min-width:0}.th-shell .dash-s-name{font-size:13px;font-weight:500;color:var(--th-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.th-shell .dash-s-sub{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;margin-top:2px}.th-shell .dash-bar-wrap{width:80px;height:3px;background:var(--th-border);border-radius:2px;flex-shrink:0;overflow:hidden}.th-shell .dash-bar{height:100%;border-radius:2px;transition:width .5s cubic-bezier(.25,.8,.25,1)}.th-shell .dash-amt{font-family:var(--th-font-mono);font-size:12px;color:var(--th-ink);font-weight:400;flex-shrink:0;width:52px;text-align:right}.th-shell .dash-pending-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--th-border);cursor:pointer;transition:opacity .1s}.th-shell .dash-pending-row:last-child{border-bottom:none}.th-shell .dash-pending-row:hover{opacity:.75}.th-shell .dash-pending-dot{width:7px;height:7px;border-radius:50%;background:var(--th-pending-dot);flex-shrink:0}.th-shell .dash-p-info{flex:1;min-width:0}.th-shell .dash-p-name{font-size:13px;font-weight:500;color:var(--th-ink)}.th-shell .dash-p-sub{font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;margin-top:2px}.th-shell .dash-p-tag{font-family:var(--th-font-mono);font-size:9px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--th-border);border-radius:3px;padding:2px 7px;color:var(--th-ink-3);flex-shrink:0}.th-shell .dash-actions{background:var(--th-bg);border-bottom:1px solid var(--th-border);padding:20px 52px}.th-shell .dash-actions-head{font-family:var(--th-font-mono);font-size:9px;font-weight:300;letter-spacing:.14em;text-transform:uppercase;color:var(--th-ink-3);margin-bottom:14px}.th-shell .dash-actions-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.th-shell .dash-action-btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;border-radius:8px;border:none;cursor:pointer;transition:opacity .15s,transform .1s;text-align:left}.th-shell .dash-action-btn:hover{opacity:.85;transform:translateY(-1px)}.th-shell .dash-action-0{background:#4A3F35;color:#fff}.th-shell .dash-action-1{background:var(--th-accent);color:#fff}.th-shell .dash-action-2{background:#7A6A5A;color:#fff}.th-shell .dash-action-3{background:#6A5C50;color:#fff}.th-shell .dash-action-icon{width:28px;height:28px;border-radius:6px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;flex-shrink:0}.th-shell .dash-action-label{font-size:12px;font-weight:500;color:#fff;line-height:1.3}.th-shell .dash-action-desc{font-family:var(--th-font-mono);font-size:10px;color:#ffffff80;font-weight:300;line-height:1.4}.th-shell .dash-footer{padding:12px 52px;font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;letter-spacing:.04em;display:flex;align-items:center;gap:12px;background:var(--th-bg)}.th-shell .dash-footer-dot{width:3px;height:3px;border-radius:50%;background:var(--th-border);flex-shrink:0}.th-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:rgba(26,23,20,.25);animation:thFadeIn .15s ease}.th-drawer{position:fixed;top:0;left:0;height:100vh;width:200px;background:var(--th-surface);border-right:1px solid var(--th-border);display:flex;flex-direction:column;padding:20px 0 16px;z-index:501;animation:thDrawerIn .2s ease;box-shadow:4px 0 24px #00000014}@keyframes thDrawerIn{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.th-drawer-brand{padding:0 20px 20px;border-bottom:1px solid var(--th-border);font-family:var(--th-font-display);font-size:15px;font-weight:700;color:var(--th-ink)}.th-drawer-item{display:flex!important;align-items:center!important;gap:12px!important;padding:11px 20px!important;font-size:13px!important;font-family:var(--th-font-body)!important;color:var(--th-ink-2)!important;background:none!important;border:none!important;width:100%!important;text-align:left!important;cursor:pointer!important;transition:background .1s,color .1s!important;position:relative!important}.th-drawer-item:hover{background:var(--th-bg)!important;color:var(--th-ink)!important}.th-drawer-item.active{color:var(--th-accent)!important;font-weight:500!important}.th-drawer-item .nav-icon{opacity:.6;flex-shrink:0}.th-drawer-item.active .nav-icon{opacity:1}.th-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(26,23,20,.35);display:flex;align-items:center;justify-content:center;z-index:300;animation:thFadeIn .15s ease}.th-confirm{background:var(--th-surface);border-radius:8px;padding:28px 32px 24px;max-width:360px;width:100%;box-shadow:0 16px 48px #0000001f;animation:thSlideUp .18s ease;font-family:var(--th-font-body)}.th-confirm-title{font-family:var(--th-font-display);font-size:16px;font-weight:700;font-style:italic;color:var(--th-ink);margin-bottom:8px}.th-confirm-msg{font-size:13px;color:var(--th-ink-2);font-weight:300;margin-bottom:24px;line-height:1.6}.th-confirm-btns{display:flex;gap:10px;justify-content:flex-end}.th-signin-wrap{display:flex;align-items:center;justify-content:center;min-height:100%;padding:48px 24px}.th-signin-card{background:var(--th-surface);border:1px solid var(--th-border);border-radius:10px;padding:48px 44px 40px;max-width:400px;width:100%;box-shadow:0 4px 24px #0000000d;text-align:center}.th-signin-logo{width:48px;height:48px;border-radius:12px;background:var(--th-ink);display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.th-signin-title{font-family:var(--th-font-display);font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--th-ink);margin-bottom:6px}.th-signin-sub{font-family:var(--th-font-mono);font-size:11px;color:var(--th-ink-3);font-weight:300;letter-spacing:.08em;text-transform:uppercase;margin-bottom:36px}.th-signin-google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px!important;font-size:13.5px!important;font-weight:500!important;border-radius:6px!important;background:var(--th-ink)!important;color:#fff!important;border:none!important;cursor:pointer!important;font-family:var(--th-font-body)!important;transition:opacity .15s!important;letter-spacing:.01em!important}.th-signin-google-btn:hover{opacity:.82!important}.th-signin-google-btn:disabled{opacity:.5!important;cursor:not-allowed!important}.th-signin-footer{margin-top:28px;font-family:var(--th-font-mono);font-size:10px;color:var(--th-ink-3);font-weight:300;letter-spacing:.04em}.th-receipt-grid{display:grid;grid-template-columns:1fr 320px;gap:80px;max-width:960px}.th-receipt-form{display:flex;flex-direction:column;gap:20px}.th-receipt-field-label{font-family:var(--th-font-mono);font-size:9px;font-weight:300;text-transform:uppercase;letter-spacing:.12em;color:var(--th-ink-3);margin-bottom:6px}.th-receipt-input{font-family:var(--th-font-body);font-size:13px;border:1px solid var(--th-border);border-radius:var(--th-radius);padding:9px 12px;background:var(--th-surface);color:var(--th-ink);outline:none;width:100%;transition:border-color .15s}.th-receipt-input:focus{border-color:var(--th-accent)}.th-receipt-chip-group{display:flex;flex-wrap:wrap;gap:6px}.th-receipt-chip{font-size:12px;padding:5px 13px;border-radius:20px;border:1px solid var(--th-border);background:var(--th-surface);color:var(--th-ink-2);cursor:pointer;font-family:var(--th-font-body);transition:all .15s}.th-receipt-chip.active{border-color:var(--th-accent);background:var(--th-accent);color:#fff}.th-receipt-extra-row{display:grid;grid-template-columns:1fr 80px 28px;gap:8px;align-items:center}.th-receipt-preview-empty{background:var(--th-surface);border:1px dashed var(--th-border);border-radius:8px;padding:60px 20px;text-align:center;color:var(--th-ink-3);font-size:12px;font-weight:300;font-style:italic}.th-user-popover{position:absolute;bottom:56px;left:68px;background:var(--th-surface);border:1px solid var(--th-border);border-radius:8px;box-shadow:0 8px 24px #0000001a;min-width:180px;z-index:400;overflow:hidden;animation:thSlideUp .15s ease;font-family:var(--th-font-body)}.th-user-popover-email{padding:12px 16px 8px;font-size:11px;color:var(--th-ink-3);font-weight:300;border-bottom:1px solid var(--th-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.th-user-popover-btn{width:100%;padding:10px 16px!important;font-size:13px!important;font-family:var(--th-font-body)!important;background:none!important;border:none!important;text-align:left!important;cursor:pointer!important;color:var(--th-ink-2)!important;transition:background .1s,color .1s;display:block!important}.th-user-popover-btn:hover{background:var(--th-bg)!important;color:var(--th-ink)!important}.th-user-popover-btn.danger:hover{background:#FEF2F2!important;color:#b91c1c!important}:root{--bg: #0B111E;--bg2: #0F1826;--surface: #141F30;--surface2: #1A2740;--border: #1F3050;--border2: #263B5A;--text: #DDE6F5;--text2: #7A93B8;--text3: #4A6080;--primary: #4D8EFF;--primary-d: rgba(77,142,255,.14);--accent: #F5A623;--success: #2ECC8E;--error: #FF6B6B;--code: #060D18;--r: 12px;font-family:Plus Jakarta Sans,system-ui,sans-serif;color:var(--text);background:var(--bg)}body{min-height:100vh;overflow-x:hidden}.workbook-root{min-height:100vh;background:var(--bg);color:var(--text)}.workbook-root p,.workbook-root h1,.workbook-root h2,.workbook-root h3,.workbook-root h4,.workbook-root li,.workbook-root label,.workbook-root textarea,.workbook-root select,.workbook-root input{color:var(--text)}.workbook-root .mc-option,.workbook-root .tf-option,.workbook-root .mc-opt-text,.workbook-root .rank-text,.workbook-root .question-text,.workbook-root .exercise-prompt,.workbook-root .hint-text,.workbook-root .view-desc,.workbook-root .dash-sub,.workbook-root .card-sub,.workbook-root .reading-text,.workbook-root .reading-intro,.workbook-root .reading-list li{color:var(--text)!important;opacity:1!important}.workbook-root select,.workbook-root input:not([type=checkbox]):not([type=radio]){background:var(--surface2)}html:has(.workbook-root),body:has(.workbook-root){height:auto!important;overflow:auto!important}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}textarea,select{font-family:inherit;color:inherit}code,pre,.code-textarea{font-family:JetBrains Mono,monospace}::-moz-selection{background:rgba(77,142,255,.3)}::selection{background:rgba(77,142,255,.3)}body,.app-header,.login-card,.chapter-card,.quiz-question,.dashboard,.practice-exercise,.section-steps,.chapter-topbar,.reading-code-block,.view-container,.step-pill,.mc-option,.tf-option,.ranking-item,.matching-row,.results-card,.response-textarea,.code-textarea,.reading-table th,.reading-table td,.reading-table-wrap{transition:background-color .3s ease,border-color .25s ease,color .2s ease}[data-theme=daylight]{--bg:#F2F5FC;--bg2:#E8EDFB;--surface:#FFFFFF;--surface2:#EDF1FA;--border:#D4DCF0;--border2:#B8C4E0;--text:#0D1526;--text2:#455070;--text3:#8A9ABE;--primary:#2563EB;--primary-d:rgba(37,99,235,.1);--accent:#D97706;--success:#059669;--error:#DC2626;--code:#1E293B;font-family:Plus Jakarta Sans,system-ui,sans-serif}[data-theme=daylight] .login-page{background:radial-gradient(ellipse 80% 60% at 50% 0%,#C7D9FF 0%,#F2F5FC 70%)}[data-theme=daylight] .login-grid-bg{opacity:.15;filter:invert(1)}[data-theme=daylight] .login-glow{background:radial-gradient(ellipse,rgba(37,99,235,.12) 0%,transparent 70%)}[data-theme=daylight] .login-card{background:#fff;border-color:#d4dcf0;box-shadow:0 24px 80px #0000001f}[data-theme=daylight] .login-title{color:#0d1526}[data-theme=daylight] .app-header{background:rgba(242,245,252,.92);border-bottom-color:#d4dcf0}[data-theme=daylight] .chapter-topbar{background:rgba(242,245,252,.95);border-bottom-color:#d4dcf0}[data-theme=daylight] .section-steps{background:#E8EDFB;border-bottom-color:#d4dcf0}[data-theme=daylight] .code-editor-header{background:#2D3748}[data-theme=daylight] .account-row{background:#F8FAFF}[data-theme=daylight] .google-btn{background:#fff}[data-theme=daylight] .reading-code-block{background:#1E2D40;border-color:#2c4060}[data-theme=daylight] .reading-code-block code{color:#93c5fd}[data-theme=daylight] .code-caption{color:#5a80a8;border-bottom-color:#ffffff12}[data-theme=daylight] .code-textarea{background:#1E2D40;color:#93c5fd}[data-theme=daylight] .code-output{background:#131E2C}[data-theme=daylight] .code-output pre{color:#c8dcee}[data-theme=parchment]{--bg:#F7F1E6;--bg2:#EFE8D6;--surface:#FDFAF3;--surface2:#EDE5D2;--border:#D8CCBA;--border2:#C4B498;--text:#1C1208;--text2:#5C4830;--text3:#9C8060;--primary:#B45309;--primary-d:rgba(180,83,9,.1);--accent:#0B7C5C;--success:#0B7C5C;--error:#B91C1C;--code:#100A02;font-family:Lora,Georgia,serif}[data-theme=parchment] .login-page{background:radial-gradient(ellipse 80% 60% at 50% 0%,#3D2008 0%,#1C1208 70%)}[data-theme=parchment] .app-header{background:rgba(247,241,230,.95);border-bottom-color:#d8ccba}[data-theme=parchment] .chapter-topbar{background:rgba(247,241,230,.97);border-bottom-color:#d8ccba}[data-theme=parchment] .section-steps{background:#EFE8D6;border-bottom-color:#d8ccba}[data-theme=parchment] .code-editor-header{background:#1C1208}[data-theme=parchment] .view-title,[data-theme=parchment] .dash-greeting,[data-theme=parchment] .card-title{font-family:Lora,Georgia,serif}[data-theme=parchment] .account-row{background:#F7F1E6}[data-theme=parchment] .google-btn{background:#FDFAF3;border-color:#d8ccba}[data-theme=parchment] .reading-code-block{background:#1C0F06;border-color:#3a2010}[data-theme=parchment] .reading-code-block code{color:#f0c87a}[data-theme=parchment] .code-caption{color:#8a6040;border-bottom-color:#ffffff0f}[data-theme=parchment] .code-textarea{background:#1C0F06;color:#f0c87a}[data-theme=parchment] .code-output{background:#100A02}[data-theme=parchment] .code-output pre{color:#e8d5a8}[data-theme=parchment] .code-output-label{color:#d4943a}[data-theme=terminal]{--bg:#060D0A;--bg2:#0A130D;--surface:#0D1A10;--surface2:#112016;--border:#163020;--border2:#1E4028;--text:#B8E8C8;--text2:#5A9870;--text3:#2A6840;--primary:#2ECC72;--primary-d:rgba(46,204,114,.12);--accent:#F0B429;--success:#2ECC72;--error:#FF5C5C;--code:#020806;font-family:JetBrains Mono,monospace}[data-theme=terminal] .login-page{background:radial-gradient(ellipse 80% 60% at 50% 0%,#0A2E14 0%,#060D0A 70%)}[data-theme=terminal] .login-glow{background:radial-gradient(ellipse,rgba(46,204,114,.15) 0%,transparent 70%)}[data-theme=terminal] .app-header{background:rgba(6,13,10,.95);border-bottom-color:#163020}[data-theme=terminal] .chapter-topbar{background:rgba(6,13,10,.97);border-bottom-color:#163020}[data-theme=terminal] .section-steps{background:#0A130D;border-bottom-color:#163020}[data-theme=terminal] .code-editor-header{background:#020806}[data-theme=terminal] .view-title,[data-theme=terminal] .dash-greeting{font-family:JetBrains Mono,monospace}[data-theme=terminal] .reading-code-block{background:#020806;border-color:#1a3820}[data-theme=terminal] .reading-code-block code{color:#6ee78a}[data-theme=terminal] .code-caption{color:#3a7a50;border-bottom-color:#ffffff0d}[data-theme=terminal] .code-textarea{background:#020806;color:#6ee78a}[data-theme=terminal] .code-output{background:#010503}[data-theme=terminal] .code-output pre{color:#a8e8b8}[data-theme=terminal] .code-output-label{color:#2ecc72}[data-theme=slate]{--bg:#ECEEF8;--bg2:#E2E5F5;--surface:#FFFFFF;--surface2:#E8EBF8;--border:#CDD2EE;--border2:#B2BAE8;--text:#1A1C3A;--text2:#484A78;--text3:#8890C0;--primary:#6366F1;--primary-d:rgba(99,102,241,.1);--accent:#EC4899;--success:#10B981;--error:#EF4444;--code:#0F0F20;font-family:DM Sans,system-ui,sans-serif}[data-theme=slate] .login-page{background:radial-gradient(ellipse 80% 60% at 50% 0%,#2D2F6E 0%,#1A1C3A 70%)}[data-theme=slate] .login-glow{background:radial-gradient(ellipse,rgba(99,102,241,.2) 0%,transparent 70%)}[data-theme=slate] .app-header{background:rgba(236,238,248,.93);border-bottom-color:#cdd2ee}[data-theme=slate] .chapter-topbar{background:rgba(236,238,248,.97);border-bottom-color:#cdd2ee}[data-theme=slate] .section-steps{background:#E2E5F5;border-bottom-color:#cdd2ee}[data-theme=slate] .code-editor-header{background:#1A1C3A}[data-theme=slate] .account-row{background:#F4F5FD}[data-theme=slate] .google-btn{background:#fff;border-color:#cdd2ee}[data-theme=slate] .reading-code-block{background:#13112C;border-color:#2c2a60}[data-theme=slate] .reading-code-block code{color:#a5b4fc}[data-theme=slate] .code-caption{color:#5855a8;border-bottom-color:#ffffff12}[data-theme=slate] .code-textarea{background:#13112C;color:#a5b4fc}[data-theme=slate] .code-output{background:#0D0B1E}[data-theme=slate] .code-output pre{color:#c4c0ff}[data-theme=slate] .code-output-label{color:#818cf8}.fade-in{animation:fadeIn .4s cubic-bezier(.22,1,.36,1) both}.slide-in{animation:slideIn .35s cubic-bezier(.22,1,.36,1) both}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 0%,#112240 0%,#0B111E 70%);position:relative;overflow:hidden}.login-grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:48px 48px;opacity:.35}.login-glow{position:absolute;top:-120px;left:50%;transform:translate(-50%);width:600px;height:400px;border-radius:50%;background:radial-gradient(ellipse,rgba(77,142,255,.18) 0%,transparent 70%);pointer-events:none}.login-card{position:relative;z-index:1;background:var(--surface);border:1.5px solid var(--border2);border-radius:20px;padding:44px 48px;width:440px;max-width:calc(100vw - 32px);box-shadow:0 32px 80px #00000080,0 0 0 1px #4d8eff0f;animation:fadeIn .5s ease}.login-logo{display:flex;align-items:center;gap:14px;margin-bottom:28px}.logo-mark{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--primary) 0%,#2D5FCC 100%);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#fff;letter-spacing:-.5px;box-shadow:0 4px 16px #4d8eff66}.login-title{font-size:20px;font-weight:700;color:var(--text)}.login-subtitle{font-size:13px;color:var(--text2);margin-top:2px}.login-divider{height:1px;background:var(--border);margin:0 -4px 24px}.login-prompt{font-size:13px;color:var(--text2);margin-bottom:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.code-input{width:100%;background:var(--bg2);border:1.5px solid var(--border2);border-radius:10px;padding:14px 16px;font-size:16px;font-weight:600;font-family:JetBrains Mono,monospace;color:var(--text);letter-spacing:.08em;outline:none;transition:all .18s;text-transform:uppercase}.code-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4d8eff26;background:var(--surface)}.code-input::-moz-placeholder{color:var(--text3);font-weight:500;letter-spacing:.04em}.code-input::placeholder{color:var(--text3);font-weight:500;letter-spacing:.04em}.code-error{font-size:13px;color:var(--error);margin-top:10px;font-weight:500}.code-hint{font-size:12px;color:var(--text3);margin:12px 0 20px;line-height:1.55}.account-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.account-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--border);border-radius:10px;transition:all .18s;text-align:left;background:var(--bg2)}.account-row:hover{border-color:var(--primary);background:var(--primary-d)}.account-row.selected{border-color:var(--primary);background:var(--primary-d);box-shadow:0 0 0 3px #4d8eff1f}.account-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;flex-shrink:0}.account-name{font-weight:600;font-size:14px}.account-email{font-size:12px;color:var(--text2);margin-top:1px}.account-check{margin-left:auto;color:var(--primary);font-size:16px;font-weight:700}.google-btn{width:100%;padding:13px;border-radius:10px;border:1.5px solid var(--border2);background:var(--surface2);display:flex;align-items:center;justify-content:center;gap:10px;font-weight:600;font-size:15px;transition:all .18s;color:var(--text)}.google-btn:hover:not(:disabled){border-color:var(--primary);box-shadow:0 0 0 3px #4d8eff24}.google-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{width:18px;height:18px;border:2px solid var(--border2);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.app-header{position:sticky;top:0;z-index:50;height:56px;background:rgba(11,17,30,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:16px;justify-content:space-between}.app-logo{display:flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap}.app-logo-name{font-size:15px;font-weight:700;white-space:nowrap}.app-logo-mark{width:30px;height:30px;border-radius:7px;background:linear-gradient(135deg,var(--primary),#2D5FCC);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;color:#fff}.app-user{display:flex;align-items:center;gap:10px;position:relative}.user-menu-btn{width:34px;height:34px;border-radius:50%;background:var(--surface2);border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;color:var(--text2);transition:all .18s;cursor:pointer}.user-menu-btn:hover,.user-menu-btn.open{color:var(--primary);border-color:var(--primary);background:var(--primary-d)}.user-menu-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:200;background:var(--surface);border:1.5px solid var(--border2);border-radius:14px;padding:14px;min-width:240px;box-shadow:0 16px 48px #00000059;animation:fadeIn .18s ease}.user-menu-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:10px}.user-menu-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.user-menu-name{font-size:14px;font-weight:700;color:var(--text)}.user-menu-email{font-size:12px;color:var(--text3);margin-top:1px}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;background:transparent;color:var(--text2);font-size:13px;font-weight:600;text-align:left;transition:all .15s;cursor:pointer;border:none}.user-menu-item:hover{background:var(--surface2);color:var(--text)}.dashboard{max-width:920px;margin:0 auto;padding:52px 24px 80px}.dash-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.dash-greeting{font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1.2;margin-bottom:6px}.dash-sub{color:var(--text2);margin-top:0;font-size:15px;line-height:1.5}.dash-stats{display:flex;gap:8px}.stat-pill{background:var(--surface);border:1.5px solid var(--border);border-radius:20px;padding:6px 16px;font-size:13px;color:var(--text2)}.stat-pill strong{color:var(--text);font-weight:700;margin-right:4px}.progress-bar-wrap{display:flex;align-items:center;gap:14px;margin-bottom:40px}.progress-bar-track{flex:1;height:5px;background:var(--surface2);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),#7BB3FF);border-radius:3px;transition:width .7s cubic-bezier(.22,1,.36,1)}.progress-label{font-size:13px;font-weight:600;color:var(--text2);min-width:36px;font-family:JetBrains Mono,monospace}.chapter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.chapter-card{position:relative;overflow:hidden;text-align:left;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:26px 24px 22px;transition:all .25s cubic-bezier(.22,1,.36,1);cursor:pointer}.chapter-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;opacity:0;background:radial-gradient(circle at 60% 30%,color-mix(in srgb,var(--ch-accent) 18%,transparent) 0%,transparent 65%);transition:opacity .3s}.chapter-card:hover:not(.locked):before{opacity:1}.chapter-card:hover:not(.locked){border-color:var(--ch-accent);transform:translateY(-3px);box-shadow:0 12px 32px #00000059,0 0 0 1px var(--ch-accent)}.chapter-card.done{border-color:#2ecc8e4d}.chapter-card.locked{opacity:.45;cursor:not-allowed}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.card-num{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);font-family:JetBrains Mono,monospace}.card-done-mark{width:22px;height:22px;border-radius:50%;background:rgba(46,204,142,.2);color:var(--success);font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:700}.card-lock{color:var(--text3);font-size:14px}.card-icon-wrap{color:var(--ch-accent);margin-bottom:14px;opacity:.9}.card-title{font-size:19px;font-weight:700;margin-bottom:4px}.card-sub{font-size:13px;color:var(--text2);margin-bottom:20px;line-height:1.5}.card-footer{display:flex;justify-content:space-between;align-items:center}.card-questions{font-size:12px;color:var(--text3);font-family:JetBrains Mono,monospace}.card-cta{font-size:12px;font-weight:700;color:var(--ch-accent);letter-spacing:.04em}.card-glow{position:absolute;bottom:-30px;right:-20px;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,var(--ch-accent) 0%,transparent 65%);opacity:.06;pointer-events:none;transition:opacity .3s}.chapter-card:hover:not(.locked) .card-glow{opacity:.12}.chapter-page{min-height:100vh;display:flex;flex-direction:column}.chapter-topbar{position:sticky;top:0;z-index:40;height:56px;background:rgba(11,17,30,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:16px;justify-content:space-between}.back-btn{font-size:13px;font-weight:600;color:var(--text2);padding:6px 10px;border-radius:8px;transition:all .15s}.back-btn:hover{color:var(--text);background:var(--surface2)}.chapter-topbar-center{display:flex;align-items:center;gap:8px}.topbar-chnum{font-size:13px;font-weight:700;color:var(--text3);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.08em}.topbar-sep{color:var(--text3)}.topbar-chtitle{font-size:15px;font-weight:600}.topbar-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}.section-steps{background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:14px 24px;gap:2px;flex-wrap:wrap}.step-pill{display:flex;align-items:center;gap:7px;padding:7px 16px;border-radius:24px;font-size:13px;font-weight:600;color:var(--text3);transition:all .2s;white-space:nowrap}.step-pill.active{background:var(--primary-d);color:var(--primary);box-shadow:0 0 0 1.5px var(--primary)}.step-pill.done{color:var(--success)}.step-icon{display:flex;align-items:center;opacity:.8}.step-line{width:28px;height:2px;background:var(--border2);border-radius:1px;transition:background .3s;flex-shrink:0}.step-line.done{background:var(--success)}.section-content{flex:1;padding:0 24px 80px}.view-container{max-width:760px;margin:0 auto;padding-top:44px}.view-eyebrow{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.view-title{font-size:32px;font-weight:800;letter-spacing:-.5px;margin-bottom:10px}.view-desc{color:var(--text2);font-size:15px;line-height:1.65}.view-header{margin-bottom:40px}.view-footer{margin-top:48px;padding-top:32px;border-top:1px solid var(--border);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.continue-btn{background:linear-gradient(135deg,var(--primary) 0%,#3570E0 100%);color:#fff;padding:12px 28px;border-radius:10px;font-size:15px;font-weight:700;transition:all .2s;box-shadow:0 4px 16px #4d8eff4d}.continue-btn:hover{transform:translate(3px);box-shadow:0 6px 22px #4d8eff73}.reading-body{display:flex;flex-direction:column;gap:22px}.reading-intro{font-size:17px;line-height:1.8;color:var(--text2);font-style:italic;border-left:3px solid var(--primary);padding-left:18px}.reading-text{font-size:15px;line-height:1.8;color:var(--text2)}.reading-heading{font-size:20px;font-weight:700;margin-top:8px;padding-top:24px;border-top:1px solid var(--border)}.reading-code-block{background:var(--code);border-radius:12px;overflow:hidden;border:1px solid var(--border2)}.code-caption{padding:10px 18px 9px;font-size:11px;font-weight:600;color:var(--text3);border-bottom:1px solid rgba(255,255,255,.05);text-transform:uppercase;letter-spacing:.07em}.reading-code-block pre{padding:20px;overflow-x:auto}.reading-code-block code{color:#79c0ff;font-size:14px;line-height:1.75}.reading-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border)}.reading-table{width:100%;border-collapse:collapse}.reading-table th{background:var(--surface2);padding:10px 16px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);border-bottom:1px solid var(--border)}.reading-table td{padding:11px 16px;font-size:14px;border-bottom:1px solid var(--border);color:var(--text2)}.reading-table tr:last-child td{border-bottom:none}.reading-table code{background:var(--surface2);padding:2px 7px;border-radius:5px;font-size:12px;color:var(--primary)}.reading-list{padding-left:20px;display:flex;flex-direction:column;gap:8px}.reading-list li{font-size:15px;line-height:1.7;color:var(--text2)}.callout{display:flex;align-items:flex-start;gap:10px;padding:14px 18px;border-radius:10px;font-size:14px;line-height:1.65}.callout-tip{background:rgba(77,142,255,.08);border:1px solid rgba(77,142,255,.25);color:var(--text2)}.callout-warning{background:rgba(245,166,35,.08);border:1px solid rgba(245,166,35,.25);color:var(--text2)}.callout-icon{flex-shrink:0;margin-top:1px;color:var(--primary)}.callout-warning .callout-icon{color:var(--accent)}.video-placeholder{border-radius:14px;overflow:hidden;cursor:pointer}.video-inner{position:relative;aspect-ratio:16/9;background:var(--code);border:1px solid var(--border);border-radius:14px;overflow:hidden}.video-stripe-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 0,transparent 40px)}.video-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.play-btn-big{width:72px;height:72px;background:rgba(77,142,255,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 0 32px #4d8eff80;transition:all .2s}.video-inner:hover .play-btn-big{transform:scale(1.1);background:var(--primary)}.video-label{color:#ffffffb3;font-size:15px;font-weight:600}.video-duration{color:#fff6;font-size:13px;font-family:JetBrains Mono,monospace}.video-watched-icon{width:64px;height:64px;background:rgba(46,204,142,.2);border:2px solid var(--success);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--success)}.practice-exercise{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;margin-bottom:20px}.exercise-num{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin-bottom:10px;font-family:JetBrains Mono,monospace}.exercise-prompt{font-size:15px;line-height:1.65;margin-bottom:18px}.practice-actions{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}.hint-btn{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;color:var(--text2);border:1px solid var(--border2);transition:all .15s}.hint-btn:hover{border-color:var(--accent);color:var(--accent)}.hint-box{background:rgba(245,166,35,.07);border:1px solid rgba(245,166,35,.25);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--text2);display:flex;align-items:center;gap:8px;margin-bottom:8px}.hint-box svg{color:var(--accent);flex-shrink:0}.code-editor-wrap{border-radius:12px;overflow:hidden;border:1px solid var(--border2)}.code-editor-header{background:#0D1525;padding:8px 14px;display:flex;align-items:center;gap:6px}.code-dot{width:11px;height:11px;border-radius:50%}.code-dot.red{background:#FF5F57}.code-dot.yellow{background:#FEBC2E}.code-dot.green{background:#28C840}.code-lang{margin-left:auto;font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}.code-textarea{display:block;width:100%;background:var(--code);color:#79c0ff;font-size:14px;line-height:1.75;padding:18px 20px;border:none;resize:vertical;outline:none;min-height:120px;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.code-textarea:focus{background:#040A14}.run-btn{background:rgba(46,204,142,.1);color:var(--success);border:1px solid rgba(46,204,142,.3);padding:8px 20px;border-radius:8px;font-size:13px;font-weight:600;font-family:JetBrains Mono,monospace;transition:all .15s;display:flex;align-items:center;gap:8px}.run-btn:hover:not(:disabled){background:rgba(46,204,142,.2);box-shadow:0 0 16px #2ecc8e33}.run-btn:disabled{opacity:.5;cursor:not-allowed}.run-spinner{width:13px;height:13px;border:2px solid rgba(46,204,142,.3);border-top-color:var(--success);border-radius:50%;animation:spin .6s linear infinite}.code-output{background:#040A14;border-radius:10px;margin-top:12px;overflow:hidden;border:1px solid var(--border)}.code-output.err .code-output-label{color:var(--error)}.code-output-label{padding:7px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--success);border-bottom:1px solid rgba(255,255,255,.05);font-family:JetBrains Mono,monospace}.code-output pre{padding:14px 18px;font-size:13px;color:#c9d1d9;line-height:1.7;white-space:pre-wrap}.quiz-question{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--q-color, var(--primary));border-radius:14px;padding:26px 28px;margin-bottom:18px}.question-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.question-type-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:4px 11px;border-radius:20px;font-family:JetBrains Mono,monospace;background:color-mix(in srgb,var(--q-color) 15%,transparent);color:var(--q-color)}.question-points{font-size:13px;font-weight:600;color:var(--text3);font-family:JetBrains Mono,monospace}.question-text{font-size:16px;line-height:1.65;font-weight:500;margin-bottom:18px}.hint-text{font-size:13px;color:var(--text3);margin-bottom:12px}.hint-text code{background:var(--surface2);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--primary)}.mc-options{display:flex;flex-direction:column;gap:8px}.mc-option{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;border:1.5px solid var(--border2);text-align:left;font-size:14px;transition:all .15s;background:var(--bg2)}.mc-option:hover:not(.correct):not(.wrong){border-color:var(--primary);background:var(--primary-d)}.mc-option.selected{border-color:var(--primary);background:var(--primary-d)}.mc-option.correct{border-color:var(--success);background:rgba(46,204,142,.08)}.mc-option.wrong{border-color:var(--error);background:rgba(255,107,107,.08)}.mc-letter{width:26px;height:26px;border-radius:6px;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;font-family:JetBrains Mono,monospace}.mc-option.selected .mc-letter{background:var(--primary);color:#fff}.mc-opt-text{flex:1}.mc-badge{margin-left:auto;font-size:14px;font-weight:700}.mc-badge.ok{color:var(--success)}.mc-badge.fail{color:var(--error)}.tf-options{display:flex;gap:12px}.tf-option{flex:1;padding:14px;border-radius:10px;border:1.5px solid var(--border2);font-size:15px;font-weight:600;transition:all .15s;background:var(--bg2);text-align:center}.tf-option:hover{border-color:var(--primary);background:var(--primary-d)}.tf-option.selected{border-color:var(--primary);background:var(--primary-d);color:var(--primary)}.tf-option.correct{border-color:var(--success);background:rgba(46,204,142,.08);color:var(--success)}.tf-option.wrong{border-color:var(--error);background:rgba(255,107,107,.08);color:var(--error)}.response-textarea{width:100%;background:var(--surface2);border:1.5px solid var(--border2);border-radius:10px;padding:14px 16px;font-size:14px;line-height:1.7;color:var(--text);resize:vertical;transition:border-color .15s;outline:none}.response-textarea::-moz-placeholder{color:var(--text3);opacity:1}.response-textarea::placeholder{color:var(--text3);opacity:1}.response-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4d8eff1a}.response-textarea.long{min-height:160px}.ranking-list{display:flex;flex-direction:column;gap:8px}.ranking-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg2);border:1.5px solid var(--border2);border-radius:10px;cursor:grab;transition:all .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ranking-item:active{cursor:grabbing}.ranking-item.dragging{opacity:.3}.ranking-item.drag-over{border-color:var(--primary);background:var(--primary-d);transform:scale(1.01)}.rank-num{width:26px;height:26px;border-radius:6px;background:var(--primary-d);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;font-family:JetBrains Mono,monospace}.rank-handle{color:var(--text3);font-size:16px;letter-spacing:-2px}.rank-text{font-size:14px;line-height:1.4}.matching-grid{display:flex;flex-direction:column;gap:10px}.matching-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--border2);border-radius:10px;transition:border-color .15s;background:var(--bg2);flex-wrap:wrap}.matching-row.correct{border-color:var(--success);background:rgba(46,204,142,.06)}.matching-row.wrong{border-color:var(--error);background:rgba(255,107,107,.06)}.matching-term code{background:var(--surface2);padding:3px 8px;border-radius:5px;font-size:13px;color:var(--primary)}.matching-arrow{color:var(--text3)}.matching-select{flex:1;min-width:140px;padding:7px 10px;border:1.5px solid var(--border2);border-radius:8px;font-size:14px;background:var(--surface);color:var(--text);outline:none;cursor:pointer}.matching-select:focus{border-color:var(--primary)}.match-badge{font-size:13px;font-weight:600}.match-badge.ok{color:var(--success)}.match-badge.fail{color:var(--error)}.submit-btn{background:var(--primary);color:#fff;padding:13px 32px;border-radius:10px;font-size:15px;font-weight:700;transition:all .18s;box-shadow:0 4px 16px #4d8eff4d}.submit-btn:hover{background:#3A7AE8;transform:translateY(-1px);box-shadow:0 8px 24px #4d8eff66}.submit-note{font-size:13px;color:var(--text3)}.quiz-results{margin-top:16px}.results-card{border-radius:16px;padding:48px 40px;text-align:center;margin-bottom:28px;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--surface) 0%,var(--surface2) 100%);border:1.5px solid var(--ch-accent, var(--primary));box-shadow:0 0 40px color-mix(in srgb,var(--ch-accent, var(--primary)) 15%,transparent)}.results-card:before{content:"";position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,var(--ch-accent, var(--primary)) 0%,transparent 70%);opacity:.12}.results-inner{position:relative;z-index:1}.results-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:10px}.results-score{font-size:72px;font-weight:800;font-family:JetBrains Mono,monospace;line-height:1;letter-spacing:-2px;color:var(--text)}.results-score.ungraded{font-size:40px;color:var(--text2)}.results-denom{font-size:32px;font-weight:500;opacity:.4}.results-pct{font-size:22px;font-weight:700;margin-top:10px;color:var(--ch-accent, var(--primary))}.results-note{font-size:14px;color:var(--text2);margin-top:8px}.results-desc{font-size:15px;color:var(--text2);line-height:1.65;margin-bottom:24px}.finish-btn{background:linear-gradient(135deg,var(--success) 0%,#1BAD74 100%);color:#fff;padding:14px 28px;border-radius:10px;font-size:15px;font-weight:700;transition:all .18s;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 20px #2ecc8e4d}.finish-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #2ecc8e73}#composer-root{--ink: #0e0d0b;--paper: #f6f2ea;--paper-2: #ece5d6;--rule: rgba(14, 13, 11, .14);--muted: rgba(14, 13, 11, .58);--accent: oklch(.72 .14 55);--accent-ink: oklch(.28 .08 55);--sans: "Geist", ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;--serif: "Instrument Serif", "Fraunces", Georgia, "Times New Roman", serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;position:relative;width:100%;height:100%;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}#composer-root *,#composer-root *:before,#composer-root *:after{box-sizing:border-box}#composer-root button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}#composer-root input,#composer-root textarea,#composer-root select{font:inherit;color:inherit}#composer-root ::-moz-selection{background:var(--accent);color:var(--ink)}#composer-root ::selection{background:var(--accent);color:var(--ink)}#composer-root #app{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}#composer-root .view{position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}#composer-root .view[aria-hidden=true]{opacity:0;pointer-events:none;transform:translateY(12px)}#composer-root .btn-soft{padding:8px 14px;border-radius:8px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--muted);background:transparent;border:1px solid transparent;transition:all .15s ease}#composer-root .btn-soft:hover{color:var(--ink);background:rgba(14,13,11,.05)}#composer-root .btn-solid{padding:9px 16px;border-radius:8px;font-family:var(--sans);font-size:13px;font-weight:500;background:var(--ink);color:var(--paper);transition:all .15s ease}#composer-root .btn-solid:hover{background:#000}#composer-root .lang-toggle{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--rule);border-radius:999px;background:var(--paper)}#composer-root .lang-toggle button{padding:5px 11px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);transition:all .15s ease}#composer-root .lang-toggle button:hover{color:var(--ink)}#composer-root .lang-toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper)}#composer-root .lang-toggle.on-dark{border-color:var(--srule);background:transparent}#composer-root .lang-toggle.on-dark button{color:var(--smuted)}#composer-root .lang-toggle.on-dark button:hover{color:var(--sink)}#composer-root .lang-toggle.on-dark button[aria-pressed=true]{background:var(--sink);color:var(--sbg)}#composer-root #quiz{display:grid;grid-template-rows:auto 1fr auto;height:100%;overflow:hidden}#composer-root .q-head{display:flex;align-items:center;justify-content:space-between;padding:18px 36px;border-bottom:1px solid var(--rule);background:var(--paper);gap:20px}#composer-root .brand{display:flex;align-items:baseline;gap:14px;min-width:0}#composer-root .brand .mark{width:22px;height:22px;border-radius:50%;background:var(--ink);display:inline-block;transform:translateY(4px);flex-shrink:0}#composer-root .brand .name{font-family:var(--serif);font-size:26px;letter-spacing:-.01em;white-space:nowrap}#composer-root .brand .name em{font-style:italic;color:var(--muted)}#composer-root .progress{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-left:auto}#composer-root .progress .bar{width:160px;height:4px;background:rgba(14,13,11,.08);border-radius:999px;overflow:hidden}#composer-root .progress .bar>span{display:block;height:100%;background:var(--ink);width:0%;transition:width .5s cubic-bezier(.2,.8,.2,1)}#composer-root .q-body{position:relative;overflow:hidden}#composer-root .section{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(340px,.9fr) 1.1fr;transition:opacity .4s ease,transform .4s ease}#composer-root .section[data-state=prev]{opacity:0;transform:translate(-24px);pointer-events:none}#composer-root .section[data-state=next]{opacity:0;transform:translate(24px);pointer-events:none}#composer-root .s-left{padding:48px;border-right:1px solid var(--rule);display:flex;flex-direction:column;justify-content:space-between;background:var(--paper)}#composer-root .s-left .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}#composer-root .s-left h1{font-family:var(--serif);font-weight:400;font-size:60px;line-height:1;letter-spacing:-.02em;margin:16px 0}#composer-root .s-left h1 em{font-style:italic;color:var(--accent-ink)}#composer-root .s-left p{max-width:36ch;color:var(--muted);font-size:16px;line-height:1.6;margin:0}#composer-root .s-meta{display:flex;gap:22px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}#composer-root .s-meta b{color:var(--ink);font-weight:500}#composer-root .s-right{padding:48px 64px;overflow-y:auto;display:flex;flex-direction:column;gap:24px;background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 140%)}#composer-root .field{display:flex;flex-direction:column;gap:10px}#composer-root .field label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}#composer-root .field .help{font-size:13px;color:var(--muted);line-height:1.5;margin-top:-2px}#composer-root .input,#composer-root .textarea{border:0;border-bottom:1px solid var(--rule);background:transparent;padding:10px 2px 12px;font-family:var(--serif);font-size:26px;line-height:1.2;letter-spacing:-.01em;outline:none;transition:border-color .2s}#composer-root .input:focus,#composer-root .textarea:focus{border-color:var(--ink)}#composer-root .textarea{resize:none;min-height:86px;font-family:var(--sans);font-size:17px;line-height:1.55}#composer-root .q-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 36px;border-top:1px solid var(--rule);background:var(--paper)}#composer-root .dots{display:flex;gap:6px}#composer-root .dots span{width:6px;height:6px;border-radius:50%;background:rgba(14,13,11,.18)}#composer-root .dots span.on{background:var(--ink)}#composer-root #editor{display:grid;grid-template-rows:auto 1fr auto;height:100%;overflow:hidden;background:var(--paper)}#composer-root .ed-body{display:grid;grid-template-columns:300px 1fr 260px;overflow:hidden;border-top:1px solid var(--rule)}#composer-root .ed-list-wrap{border-right:1px solid var(--rule);display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}#composer-root .ed-list-head{padding:20px 22px;border-bottom:1px solid var(--rule);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}#composer-root .ed-list-head .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}#composer-root .ed-count{font-family:var(--serif);font-size:18px;letter-spacing:-.01em;line-height:1.2;color:var(--muted)}#composer-root .ed-reset{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 10px;border:1px solid var(--rule);border-radius:6px;transition:all .15s}#composer-root .ed-reset:hover{color:var(--ink);border-color:var(--ink)}#composer-root .ed-list{list-style:none;margin:0;padding:10px;overflow-y:auto;flex:1}#composer-root .ed-list li{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;cursor:pointer;transition:background .15s;margin-bottom:4px;border:1px solid transparent}#composer-root .ed-list li:hover{background:rgba(14,13,11,.04)}#composer-root .ed-list li[aria-selected=true]{background:rgba(14,13,11,.06);border-color:var(--rule)}#composer-root .ed-list li.dragging{opacity:.4}#composer-root .ed-list li .grip{color:var(--muted);cursor:grab;font-family:var(--mono);font-size:12px;line-height:1;padding:2px 4px}#composer-root .ed-list li .num{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em;width:22px;flex-shrink:0}#composer-root .ed-list li .thumb{width:48px;height:32px;border:1px solid var(--rule);border-radius:4px;background:#fff;color:var(--ink);display:grid;place-items:center;flex-shrink:0}#composer-root .ed-list li .thumb svg{width:100%;height:100%}#composer-root .ed-list li .meta{flex:1;min-width:0}#composer-root .ed-list li .meta b{display:block;font-weight:500;font-size:13px;font-family:var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#composer-root .ed-list li .meta span{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}#composer-root .ed-preview-wrap{display:flex;flex-direction:column;overflow:hidden;background:var(--paper-2)}#composer-root .ed-preview-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--rule);background:var(--paper);gap:20px}#composer-root .ed-preview-head .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}#composer-root .ed-slide-name{font-family:var(--serif);font-size:26px;letter-spacing:-.015em;line-height:1.1}#composer-root .ed-picker-col{border-left:1px solid var(--rule);display:flex;flex-direction:column;overflow:hidden;background:var(--paper-2)}#composer-root .ed-picker-head{padding:20px 22px;border-bottom:1px solid var(--rule);background:var(--paper)}#composer-root .ed-picker-head .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}#composer-root .ed-picker-title{font-family:var(--serif);font-size:20px;letter-spacing:-.01em}#composer-root .ed-layout-picker{display:flex;flex-direction:column;gap:14px;padding:18px 18px 40px;overflow-y:auto;flex:1}#composer-root .lp-group{display:flex;flex-direction:column;gap:6px}#composer-root .lp-group-label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0 2px}#composer-root .lp-row{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}#composer-root .lp-opt{display:flex;flex-direction:column;gap:4px;align-items:center;padding:8px 6px;border:1px solid var(--rule);border-radius:8px;cursor:pointer;transition:all .15s;background:var(--paper);min-width:0}#composer-root .lp-opt:hover{border-color:var(--ink)}#composer-root .lp-opt[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}#composer-root .lp-opt svg{width:40px;height:26px}#composer-root .lp-opt span{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}#composer-root .ed-preview{flex:1;display:grid;place-items:center;padding:40px;overflow:hidden}#composer-root .ed-stage{width:100%;max-width:1100px;aspect-ratio:16/10;border-radius:8px;overflow:hidden;position:relative;box-shadow:0 30px 80px #0000001f,0 8px 20px #00000014;--sbg: #f6f2ea;--sink: #0e0d0b;--smuted: rgba(14,13,11,.55);--srule: rgba(14,13,11,.14);--sacc: oklch(.72 .14 55);--sacc-ink: oklch(.28 .08 55);--s-serif: "Instrument Serif", Georgia, serif;--s-sans: "Geist", sans-serif;--s-mono: "JetBrains Mono", monospace;background:var(--sbg);color:var(--sink)}#composer-root .ed-slide{position:absolute;top:0;right:0;bottom:0;left:0;padding:6%;display:flex;flex-direction:column;transform-origin:top left}#composer-root .ed-slide .big{font-size:clamp(48px,6vw,88px)}#composer-root .ed-slide .L-section h2,#composer-root .ed-slide .L-two h2,#composer-root .ed-slide .L-list h2,#composer-root .ed-slide .L-image h2,#composer-root .ed-slide .L-stats h2{font-size:clamp(40px,5vw,72px)}#composer-root .ed-slide .L-quote blockquote{font-size:clamp(36px,4vw,60px)}#composer-root .ed-slide .L-manifesto p{font-size:clamp(32px,3.2vw,52px)}#composer-root .ed-slide .L-end h2{font-size:clamp(60px,7vw,110px)}#composer-root .ed-hint{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}#composer-root #loader{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;background:var(--paper)}#composer-root .spinner{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(0,0,0,.12);border-top-color:var(--ink);animation:composer-spin 1s linear infinite}@keyframes composer-spin{to{transform:rotate(360deg)}}#composer-root #loader .lead{font-family:var(--serif);font-size:34px;letter-spacing:-.01em}#composer-root #loader .lead em{font-style:italic;color:var(--accent-ink)}#composer-root #loader .sub{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}#composer-root #deck{display:none;--sbg: #f6f2ea;--sbg-2: #f6f2ea;--sink: #0e0d0b;--smuted: rgba(14,13,11,.55);--srule: rgba(14,13,11,.14);--sacc: oklch(.72 .14 55);--sacc-ink: oklch(.28 .08 55);--s-serif: "Instrument Serif", Georgia, serif;--s-sans: "Geist", system-ui, sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace;--s-pattern: none;transition:background .5s ease,color .5s ease}#composer-root #deck.on{display:block}#composer-root .deck-lang-slot{position:absolute;top:20px;right:24px;z-index:10}#composer-root .stage{position:absolute;top:0;right:0;bottom:90px;left:0;overflow:hidden;color:var(--sink);background:var(--sbg);transition:background .5s ease,color .5s ease}#composer-root .stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:var(--s-pattern);opacity:var(--s-pattern-opacity, 1);transition:opacity .5s}#composer-root .reel{position:absolute;left:0;top:0;right:0;will-change:transform;transition:transform .9s cubic-bezier(.76,0,.16,1);z-index:1}#composer-root .slide{position:relative;height:calc(100vh - 90px);padding:72px 96px;overflow:hidden;display:flex;flex-direction:column;z-index:1}#composer-root .slide .meta{position:absolute;top:32px;left:96px;right:96px;display:flex;justify-content:space-between;align-items:center;font-family:var(--s-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--smuted)}#composer-root .slide .meta .dot{width:6px;height:6px;border-radius:50%;background:var(--sacc);display:inline-block;margin-right:8px;vertical-align:middle}#composer-root .dock{position:absolute;left:0;right:0;bottom:0;height:90px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 32px;border-top:1px solid var(--srule);background:var(--sbg);color:var(--sink);transition:background .5s ease,color .5s ease,border-color .5s ease;z-index:5}#composer-root .dock-l{display:flex;align-items:center;gap:16px}#composer-root .dock-c{display:flex;align-items:center;gap:12px}#composer-root .dock-r{display:flex;align-items:center;justify-content:flex-end;gap:10px}#composer-root .navbtn{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:20px;line-height:1;color:var(--sink);background:transparent;border:1px solid transparent;transition:all .15s ease}#composer-root .navbtn:hover{background:color-mix(in srgb,var(--sink) 8%,transparent)}#composer-root .navbtn[disabled]{opacity:.25;pointer-events:none}#composer-root .counter{font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;color:var(--smuted);min-width:64px;text-align:center}#composer-root .counter b{color:var(--sink);font-family:var(--s-serif);font-style:italic;font-weight:400;font-size:20px;margin-right:6px}#composer-root .seekbar{position:relative;width:240px;height:3px;background:rgba(128,128,128,.18);border-radius:999px;overflow:hidden;cursor:pointer}#composer-root .seekbar .fill{position:absolute;left:0;top:0;height:100%;background:var(--sink);width:0%;transition:width .5s cubic-bezier(.76,0,.16,1)}#composer-root .seekbar .ticks{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}#composer-root .seekbar .ticks i{flex:1;border-right:1px solid rgba(128,128,128,.25)}#composer-root .seekbar .ticks i:last-child{border-right:0}#composer-root .theme-dd{position:relative}#composer-root .theme-dd .trigger{display:flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid var(--srule);border-radius:999px;font-family:var(--s-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sink);transition:all .15s}#composer-root .theme-dd .trigger:hover{border-color:var(--sink)}#composer-root .theme-dd .trigger .sw{width:12px;height:12px;border-radius:4px;border:1px solid var(--srule)}#composer-root .theme-dd .menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:220px;background:var(--sbg);border:1px solid var(--srule);border-radius:12px;padding:6px;z-index:30;box-shadow:0 16px 40px #0003;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .18s,transform .18s}#composer-root .theme-dd.open .menu{opacity:1;transform:none;pointer-events:auto}#composer-root .theme-dd .opt{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:8px;width:100%;text-align:left;font-family:var(--s-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--sink);transition:background .15s}#composer-root .theme-dd .opt:hover{background:rgba(128,128,128,.12)}#composer-root .theme-dd .opt .sw{width:18px;height:18px;border-radius:5px;border:1px solid var(--srule);flex-shrink:0}#composer-root .theme-dd .opt[aria-selected=true] .sw{outline:2px solid var(--sink);outline-offset:2px}#composer-root .edit-btn{padding:7px 14px;border:1px solid var(--srule);border-radius:999px;font-size:11px;font-family:var(--s-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--smuted);transition:all .15s}#composer-root .edit-btn:hover{color:var(--sink);border-color:var(--sink)}#composer-root #deck[data-theme=paper]{--sbg: #f6f2ea;--sbg-2: #ece5d6;--sink: #0e0d0b;--smuted: rgba(14,13,11,.55);--srule: rgba(14,13,11,.14);--sacc: oklch(.72 .14 55);--sacc-ink: oklch(.28 .08 55);--s-serif: "Instrument Serif", Georgia, serif;--s-pattern: radial-gradient(rgba(14,13,11,.05) 1px, transparent 1px);--s-pattern-opacity: .35}#composer-root #deck[data-theme=paper] .stage:before{background-size:22px 22px}#composer-root #deck[data-theme=mono]{--sbg: #ffffff;--sbg-2: #ffffff;--sink: #0a0a0a;--smuted: rgba(0,0,0,.5);--srule: rgba(0,0,0,.1);--sacc: #0a0a0a;--sacc-ink: #0a0a0a;--s-serif: "Space Grotesk", system-ui, sans-serif;--s-sans: "Space Grotesk", system-ui, sans-serif;--s-mono: "IBM Plex Mono", ui-monospace, monospace;--s-pattern: linear-gradient(to right, rgba(0,0,0,.04) 1px, transparent 1px), linear-gradient(to bottom, rgba(0,0,0,.04) 1px, transparent 1px);--s-pattern-opacity: 1}#composer-root #deck[data-theme=mono] .stage:before{background-size:80px 80px}#composer-root #deck[data-theme=mono] .big em{font-style:normal;background:var(--sink);color:#fff;padding:0 .15em}#composer-root #deck[data-theme=dusk]{--sbg: #0f1216;--sbg-2: #14181e;--sink: #f1ede3;--smuted: rgba(241,237,227,.55);--srule: rgba(241,237,227,.14);--sacc: oklch(.78 .14 75);--sacc-ink: oklch(.88 .12 75);--s-serif: "EB Garamond", Georgia, serif;--s-sans: "Geist", system-ui, sans-serif;--s-pattern: radial-gradient(ellipse at 20% 0%, rgba(241,237,227,.06), transparent 60%), radial-gradient(ellipse at 80% 100%, rgba(241,237,227,.04), transparent 50%)}#composer-root #deck[data-theme=neon]{--sbg: #0a0a0f;--sbg-2: #0a0a0f;--sink: #f7f7ff;--smuted: rgba(247,247,255,.55);--srule: rgba(247,247,255,.15);--sacc: oklch(.75 .23 140);--sacc-ink: oklch(.85 .2 140);--s-serif: "Syne", "Space Grotesk", sans-serif;--s-sans: "Space Grotesk", sans-serif;--s-pattern: linear-gradient(135deg, oklch(.25 .12 300 / .35), transparent 60%), radial-gradient(circle at 80% 20%, oklch(.55 .2 140 / .18), transparent 50%)}#composer-root #deck[data-theme=neon] .big{font-weight:700}#composer-root #deck[data-theme=neon] .big em{font-style:normal;color:var(--sacc);text-shadow:0 0 24px color-mix(in oklch,var(--sacc) 60%,transparent)}#composer-root #deck[data-theme=journal]{--sbg: #efe7d6;--sbg-2: #e3d9c3;--sink: #2b2418;--smuted: rgba(43,36,24,.55);--srule: rgba(43,36,24,.2);--sacc: oklch(.55 .14 30);--sacc-ink: oklch(.38 .13 30);--s-serif: "Playfair Display", Georgia, serif;--s-sans: "Caveat", cursive;--s-mono: "IBM Plex Mono", monospace;--s-pattern: repeating-linear-gradient(transparent 0 38px, rgba(43,36,24,.07) 38px 39px);--s-pattern-opacity: .8}#composer-root #deck[data-theme=journal] .big em{font-style:italic;color:var(--sacc)}#composer-root #deck[data-theme=blueprint]{--sbg: #0d2540;--sbg-2: #0d2540;--sink: #e8f4ff;--smuted: rgba(232,244,255,.55);--srule: rgba(232,244,255,.25);--sacc: oklch(.88 .13 90);--sacc-ink: oklch(.88 .13 90);--s-serif: "IBM Plex Mono", monospace;--s-sans: "IBM Plex Mono", monospace;--s-mono: "IBM Plex Mono", monospace;--s-pattern: linear-gradient(to right, rgba(232,244,255,.1) 1px, transparent 1px), linear-gradient(to bottom, rgba(232,244,255,.1) 1px, transparent 1px), linear-gradient(to right, rgba(232,244,255,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(232,244,255,.05) 1px, transparent 1px);--s-pattern-opacity: 1}#composer-root #deck[data-theme=blueprint] .stage:before{background-size:80px 80px,80px 80px,16px 16px,16px 16px}#composer-root #deck[data-theme=blueprint] .big{letter-spacing:-.02em;font-weight:500}#composer-root .big{font-family:var(--s-serif);font-weight:400;font-size:clamp(80px,9.5vw,168px);line-height:.9;letter-spacing:-.035em}#composer-root .big em{font-style:italic;color:var(--sacc-ink)}#composer-root .eyebrow{font-family:var(--s-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--smuted)}#composer-root .body{font-family:var(--s-sans);font-size:22px;line-height:1.5;max-width:48ch;color:var(--smuted)}#composer-root .body strong{color:var(--sink);font-weight:500}#composer-root .L-title{display:flex;flex-direction:column;justify-content:flex-end;flex:1}#composer-root .L-title .big{max-width:14ch}#composer-root .L-title .byline{display:flex;align-items:flex-end;justify-content:space-between;margin-top:40px;border-top:1px solid var(--srule);padding-top:22px;font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--smuted)}#composer-root .L-title .byline b{font-family:var(--s-serif);text-transform:none;font-size:22px;letter-spacing:-.01em;color:var(--sink);font-weight:400;font-style:italic}#composer-root .L-section{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}#composer-root .L-section .num{font-family:var(--s-mono);font-size:14px;letter-spacing:.18em;color:var(--sacc-ink);margin-bottom:28px}#composer-root .L-section h2{font-family:var(--s-serif);font-size:clamp(60px,7vw,140px);font-weight:400;line-height:1;margin:0;letter-spacing:-.03em;max-width:16ch}#composer-root .L-section h2 em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-section .rule{width:80px;height:1px;background:var(--sink);margin:40px auto 0}#composer-root .L-two{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;flex:1}#composer-root .L-two h2{font-family:var(--s-serif);font-size:clamp(56px,5.5vw,104px);font-weight:400;line-height:.98;letter-spacing:-.025em;margin:16px 0 0}#composer-root .L-two h2 em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-two .col-r{border-left:1px solid var(--srule);padding-left:48px}#composer-root .L-two .body{font-size:24px;max-width:42ch}#composer-root .L-quote{flex:1;display:flex;flex-direction:column;justify-content:center;padding-left:80px}#composer-root .L-quote blockquote{font-family:var(--s-serif);font-size:clamp(54px,5vw,96px);font-style:italic;line-height:1.05;letter-spacing:-.02em;margin:0;max-width:22ch;position:relative}#composer-root .L-quote blockquote:before{content:"“";position:absolute;left:-.55em;top:-.2em;font-size:1.2em;color:var(--sacc-ink);font-style:normal}#composer-root .L-quote cite{margin-top:40px;display:block;font-style:normal;font-family:var(--s-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--smuted)}#composer-root .L-quote cite b{color:var(--sink);font-weight:500}#composer-root .L-stats{flex:1;display:flex;flex-direction:column;justify-content:space-between}#composer-root .L-stats h2{font-family:var(--s-serif);font-size:clamp(48px,4.5vw,88px);font-weight:400;line-height:1;letter-spacing:-.02em;margin:0 0 auto;max-width:18ch}#composer-root .L-stats .grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--srule);padding-top:36px;gap:28px}#composer-root .L-stats .stat .num{font-family:var(--s-serif);font-size:clamp(64px,6.5vw,120px);line-height:1;letter-spacing:-.03em}#composer-root .L-stats .stat .num em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-stats .stat .lbl{font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--smuted);margin-top:10px}#composer-root .L-list{flex:1;display:flex;flex-direction:column}#composer-root .L-list h2{font-family:var(--s-serif);font-size:clamp(56px,5.5vw,100px);font-weight:400;line-height:1;letter-spacing:-.025em;margin:16px 0 32px;max-width:20ch}#composer-root .L-list h2 em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-list ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--srule)}#composer-root .L-list ol li{display:grid;grid-template-columns:64px 1fr auto;gap:32px;padding:22px 0;border-bottom:1px solid var(--srule);align-items:baseline;transition:padding-left .3s}#composer-root .L-list ol li:hover{padding-left:12px}#composer-root .L-list ol li .n{font-family:var(--s-mono);font-size:13px;letter-spacing:.1em;color:var(--smuted)}#composer-root .L-list ol li .t{font-family:var(--s-serif);font-size:32px;letter-spacing:-.015em}#composer-root .L-list ol li .d{font-family:var(--s-sans);font-size:14px;color:var(--smuted);max-width:30ch;text-align:right}#composer-root .L-image{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:stretch;flex:1}#composer-root .L-image .art{border-radius:4px;position:relative;overflow:hidden;background:repeating-linear-gradient(135deg,rgba(128,128,128,.08) 0 2px,transparent 2px 14px),var(--sacc);display:flex;flex-direction:column;justify-content:space-between;padding:28px;color:var(--sink)}#composer-root .L-image .art .tag{font-family:var(--s-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;background:var(--sink);color:var(--sbg);padding:6px 10px;border-radius:4px;align-self:flex-start}#composer-root .L-image .art .cap{font-family:var(--s-mono);font-size:12px;letter-spacing:.04em;background:var(--sbg);padding:10px 12px;border-radius:4px;max-width:80%;color:var(--sink)}#composer-root .L-image .text{display:flex;flex-direction:column;justify-content:center;gap:20px}#composer-root .L-image h2{font-family:var(--s-serif);font-size:clamp(56px,5.5vw,104px);font-weight:400;line-height:.98;letter-spacing:-.025em;margin:0}#composer-root .L-image h2 em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-manifesto{flex:1;display:flex;flex-direction:column;justify-content:center}#composer-root .L-manifesto p{font-family:var(--s-serif);font-size:clamp(48px,4.2vw,80px);line-height:1.08;letter-spacing:-.018em;margin:0;max-width:24ch}#composer-root .L-manifesto p em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-end{flex:1;display:flex;flex-direction:column;justify-content:space-between}#composer-root .L-end h2{font-family:var(--s-serif);font-size:clamp(90px,10vw,190px);font-weight:400;line-height:.88;letter-spacing:-.035em;margin:0}#composer-root .L-end h2 em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-end .sig{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:1px solid var(--srule);padding-top:22px;margin-top:40px;font-family:var(--s-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--smuted)}#composer-root .L-end .sig b{display:block;font-family:var(--s-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.01em;font-size:22px;color:var(--sink);margin-bottom:4px}#composer-root .L-toc{flex:1;display:flex;flex-direction:column}#composer-root .L-toc h2{font-family:var(--s-serif);font-size:clamp(56px,5.5vw,104px);font-weight:400;line-height:1;letter-spacing:-.025em;margin:16px 0 32px}#composer-root .L-toc h2 em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-toc ul{list-style:none;padding:0;margin:0;-moz-columns:2;columns:2;-moz-column-gap:64px;column-gap:64px}#composer-root .L-toc ul li{-moz-column-break-inside:avoid;break-inside:avoid;padding:16px 0;border-bottom:1px dashed var(--srule);display:flex;justify-content:space-between;align-items:baseline;font-family:var(--s-serif);font-size:24px;letter-spacing:-.01em}#composer-root .L-toc ul li .n{font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;color:var(--smuted)}#composer-root .L-title-center{align-items:center;justify-content:center;text-align:center}#composer-root .L-title-center .eyebrow{text-align:center}#composer-root .L-title-center h1{max-width:18ch}#composer-root .L-title-center .sub{font-family:var(--s-serif);font-size:24px;opacity:.75;margin-top:12px}#composer-root .L-title-center .meta-grid{display:flex;gap:48px;margin-top:40px;font-family:var(--s-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--smuted)}#composer-root .L-title-center .meta-grid b{display:block;font-family:var(--s-serif);font-size:22px;font-style:italic;letter-spacing:-.01em;color:var(--sink);text-transform:none;font-weight:400;margin-bottom:4px}#composer-root .L-title-huge{justify-content:center}#composer-root .L-title-huge h1.huge{font-size:clamp(120px,16vw,260px);line-height:.88;max-width:none;letter-spacing:-.04em;font-family:var(--s-serif);font-weight:400;margin:0}#composer-root .L-title-huge h1.huge em{font-style:italic;color:var(--sacc-ink)}#composer-root .L-title-huge .sub{font-family:var(--s-serif);font-size:28px;opacity:.7;margin-top:24px}#composer-root .L-toc-grid .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:24px}#composer-root .L-toc-grid .cell{border:1px solid var(--srule);border-radius:14px;padding:28px 32px;background:color-mix(in srgb,var(--sink) 2%,transparent)}#composer-root .L-toc-grid .cell .n{font-family:var(--s-mono);font-size:11px;letter-spacing:.12em;color:var(--smuted);text-transform:uppercase;margin-bottom:8px}#composer-root .L-toc-grid .cell .t{font-family:var(--s-serif);font-size:30px;letter-spacing:-.01em}#composer-root .L-section-left{align-items:flex-start;text-align:left;justify-content:flex-end}#composer-root .L-section-left .num{align-self:flex-start}#composer-root .L-section-left h2{text-align:left;max-width:22ch}#composer-root .L-section-left .rule{align-self:flex-start;width:40%}#composer-root .L-section-block{align-items:stretch;justify-content:center}#composer-root .L-section-block .block{border:1px solid var(--srule);border-radius:20px;padding:10% 8%;background:color-mix(in srgb,var(--sacc) 6%,transparent);text-align:center}#composer-root .L-section-block .block .num{margin-bottom:24px}#composer-root .L-manifesto-center{align-items:center;text-align:center}#composer-root .L-manifesto-center p{max-width:22ch}#composer-root .L-manifesto-boxed{align-items:center;justify-content:center}#composer-root .L-manifesto-boxed .box{border:1px solid var(--sacc);border-radius:22px;padding:8% 6%;max-width:85%;background:color-mix(in srgb,var(--sacc) 4%,transparent)}#composer-root .L-manifesto-boxed .box p{font-size:clamp(36px,3.4vw,64px);max-width:none}#composer-root .L-two-stack{flex-direction:column;grid-template:none;display:flex;gap:0}#composer-root .L-two-stack .top{flex:0 0 auto;padding-bottom:24px;border-bottom:1px solid var(--srule)}#composer-root .L-two-stack .bot{flex:1;padding-top:32px;display:flex;align-items:flex-start}#composer-root .L-two-stack .bot .body{font-family:var(--s-serif);font-size:clamp(20px,1.5vw,26px);line-height:1.5;max-width:60ch;-moz-column-count:2;column-count:2;-moz-column-gap:48px;column-gap:48px}#composer-root .L-image-right{grid-template-columns:1fr 1.2fr;gap:64px}#composer-root .L-image-right .text{order:1;display:flex;flex-direction:column;justify-content:center;gap:20px}#composer-root .L-image-right .art{order:2}#composer-root .L-image-right .body{font-family:var(--s-serif);font-size:clamp(22px,1.8vw,30px);line-height:1.35;color:var(--sink);max-width:32ch}#composer-root .L-image-full{position:relative;flex:1;border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--sink) 8%,transparent)}#composer-root .L-image-full .overlay{position:absolute;inset:auto 0 0 0;padding:48px;background:linear-gradient(to top,rgba(0,0,0,.6),transparent);color:#fff}#composer-root .L-image-full .overlay h2{color:#fff;font-family:var(--s-serif);font-size:clamp(40px,4vw,72px);margin:8px 0 0;font-weight:400;letter-spacing:-.02em;line-height:1.05}#composer-root .L-image-full .overlay .eyebrow{color:#fffc}#composer-root .L-image-full .overlay .cap{font-family:var(--s-serif);font-size:20px;margin-top:12px;opacity:.85}#composer-root .L-list-cards .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px;flex:1}#composer-root .L-list-cards .card{border:1px solid var(--srule);border-radius:16px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;min-height:200px;background:color-mix(in srgb,var(--sink) 2%,transparent)}#composer-root .L-list-cards .card .n{font-family:var(--s-mono);font-size:11px;letter-spacing:.12em;color:var(--sacc-ink)}#composer-root .L-list-cards .card .t{font-family:var(--s-serif);font-size:26px;line-height:1.2;letter-spacing:-.01em}#composer-root .L-quote-center{align-items:center;text-align:center;justify-content:center}#composer-root .L-quote-center blockquote{max-width:22ch;margin:0 auto}#composer-root .L-quote-center cite{text-align:center;display:block}#composer-root .L-stats-inline .inline{display:flex;gap:64px;margin-top:48px;align-items:baseline;flex-wrap:wrap}#composer-root .L-stats-inline .stat{display:flex;flex-direction:column;gap:6px}#composer-root .L-stats-inline .stat em{font-family:var(--s-serif);font-style:italic;font-size:clamp(64px,7vw,120px);line-height:.9;letter-spacing:-.03em;color:var(--sacc-ink);font-weight:400}#composer-root .L-stats-inline .stat span{font-family:var(--s-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--smuted)}#composer-root .L-end-sig{justify-content:center;align-items:flex-start}#composer-root .L-end-sig h2{font-size:clamp(80px,10vw,180px);margin:0}#composer-root .L-end-sig .sig-line{margin-top:32px;font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--smuted)}#composer-root *::-webkit-scrollbar{width:8px;height:8px}#composer-root *::-webkit-scrollbar-thumb{background:rgba(128,128,128,.3);border-radius:8px}#composer-root .swatches{display:flex;gap:10px;flex-wrap:wrap}#composer-root .swatch{width:44px;height:44px;border-radius:12px;cursor:pointer;border:2px solid transparent;position:relative;transition:transform .15s;padding:0}#composer-root .swatch:hover{transform:translateY(-2px)}#composer-root .swatch[aria-pressed=true]{border-color:var(--ink)}#composer-root .swatch[aria-pressed=true]:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px dashed var(--ink);border-radius:16px}#composer-root[data-theme=paper] .ed-stage{--sbg: #f6f2ea;--sbg-2: #ece5d6;--sink: #0e0d0b;--smuted: rgba(14,13,11,.55);--srule: rgba(14,13,11,.14);--sacc: oklch(.72 .14 55);--sacc-ink: oklch(.28 .08 55);--s-serif: "Instrument Serif", Georgia, serif;--s-sans: "Geist", system-ui, sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=dusk] .ed-stage{--sbg: #0f1216;--sbg-2: #14181e;--sink: #f1ede3;--smuted: rgba(241,237,227,.55);--srule: rgba(241,237,227,.14);--sacc: oklch(.78 .14 75);--sacc-ink: oklch(.88 .12 75);--s-serif: "EB Garamond", Georgia, serif;--s-sans: "Geist", system-ui, sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=neon] .ed-stage{--sbg: #0a0a0f;--sbg-2: #0a0a0f;--sink: #f7f7ff;--smuted: rgba(247,247,255,.55);--srule: rgba(247,247,255,.15);--sacc: oklch(.75 .23 140);--sacc-ink: oklch(.85 .2 140);--s-serif: "Syne", "Space Grotesk", sans-serif;--s-sans: "Space Grotesk", sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=journal] .ed-stage{--sbg: #efe7d6;--sbg-2: #e3d9c3;--sink: #2b2418;--smuted: rgba(43,36,24,.55);--srule: rgba(43,36,24,.2);--sacc: oklch(.55 .14 30);--sacc-ink: oklch(.38 .13 30);--s-serif: "Playfair Display", Georgia, serif;--s-sans: "Caveat", cursive;--s-mono: "IBM Plex Mono", monospace}#composer-root[data-theme=blueprint] .ed-stage{--sbg: #0d2540;--sbg-2: #0d2540;--sink: #e8f4ff;--smuted: rgba(232,244,255,.55);--srule: rgba(232,244,255,.25);--sacc: oklch(.88 .13 90);--sacc-ink: oklch(.88 .13 90);--s-serif: "IBM Plex Mono", monospace;--s-sans: "IBM Plex Mono", monospace;--s-mono: "IBM Plex Mono", monospace}#composer-root #theme-picker{display:grid;grid-template-rows:auto 1fr auto;height:100%;overflow:hidden;background:var(--paper)}#composer-root .tp-head{display:flex;align-items:center;justify-content:space-between;padding:18px 36px;border-bottom:1px solid var(--rule);background:var(--paper);gap:20px}#composer-root .tp-body{display:grid;grid-template-columns:minmax(320px,.85fr) 1.15fr;overflow:hidden}#composer-root .tp-intro{padding:64px 48px;border-right:1px solid var(--rule);background:var(--paper);display:flex;flex-direction:column;gap:16px;justify-content:center}#composer-root .tp-intro .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}#composer-root .tp-intro h1{font-family:var(--serif);font-weight:400;font-size:64px;line-height:1;letter-spacing:-.02em;margin:8px 0 0}#composer-root .tp-intro .sub{max-width:36ch;color:var(--muted);font-size:16px;line-height:1.6;margin:0}#composer-root .tp-grid{padding:40px 48px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-content:center;background:linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 140%)}#composer-root .tp-card{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--tp-bg, #f6f2ea);color:var(--tp-ink, #0e0d0b);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;text-align:left;cursor:pointer;padding:0}#composer-root .tp-card:hover{transform:translateY(-2px);border-color:var(--ink);box-shadow:0 12px 28px #00000014}#composer-root .tp-card.is-selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}#composer-root .tp-preview{padding:24px 22px 18px;display:flex;flex-direction:column;gap:8px;min-height:130px;background:var(--tp-bg);color:var(--tp-ink)}#composer-root .tp-preview-title{font-family:var(--serif);font-size:38px;line-height:1;letter-spacing:-.02em}#composer-root .tp-preview-rule{height:1px;background:currentColor;opacity:.25;margin:4px 0}#composer-root .tp-preview-line{height:5px;border-radius:3px;background:currentColor;opacity:.35}#composer-root .tp-preview-line.short{width:50%;opacity:.55}#composer-root .tp-meta{padding:12px 16px;border-top:1px solid rgba(128,128,128,.18);display:flex;align-items:baseline;justify-content:space-between;gap:12px;background:color-mix(in srgb,var(--tp-bg) 80%,transparent)}#composer-root .tp-label{font-family:var(--serif);font-size:20px;letter-spacing:-.01em}#composer-root .tp-hint{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.65}#composer-root .tp-foot{display:flex;align-items:center;justify-content:space-between;padding:14px 36px;border-top:1px solid var(--rule);background:var(--paper)}#composer-root .tp-foot-hint{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}#composer-root[data-theme=paper]{--paper: #f6f2ea;--paper-2: #ece5d6;--ink: #0e0d0b;--rule: rgba(14,13,11,.14);--muted: rgba(14,13,11,.55);--accent: oklch(.72 .14 55);--accent-ink: oklch(.28 .08 55);--serif: "Instrument Serif", Georgia, serif;--sans: "Geist", ui-sans-serif, system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=mono]{--paper: #ffffff;--paper-2: #f4f4f4;--ink: #0a0a0a;--rule: rgba(0,0,0,.1);--muted: rgba(0,0,0,.5);--accent: #0a0a0a;--accent-ink: #0a0a0a;--serif: "Space Grotesk", system-ui, sans-serif;--sans: "Space Grotesk", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace}#composer-root[data-theme=dusk]{--paper: #0f1216;--paper-2: #14181e;--ink: #f1ede3;--rule: rgba(241,237,227,.14);--muted: rgba(241,237,227,.55);--accent: oklch(.78 .14 75);--accent-ink: oklch(.88 .12 75);--serif: "EB Garamond", Georgia, serif;--sans: "Geist", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=neon]{--paper: #0a0a0f;--paper-2: #0f0f17;--ink: #f7f7ff;--rule: rgba(247,247,255,.15);--muted: rgba(247,247,255,.55);--accent: oklch(.75 .23 140);--accent-ink: oklch(.85 .2 140);--serif: "Syne", "Space Grotesk", sans-serif;--sans: "Space Grotesk", sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=journal]{--paper: #efe7d6;--paper-2: #e3d9c3;--ink: #2b2418;--rule: rgba(43,36,24,.2);--muted: rgba(43,36,24,.55);--accent: oklch(.55 .14 30);--accent-ink: oklch(.38 .13 30);--serif: "Playfair Display", Georgia, serif;--sans: "Caveat", cursive;--mono: "IBM Plex Mono", monospace}#composer-root[data-theme=blueprint]{--paper: #0d2540;--paper-2: #11304f;--ink: #e8f4ff;--rule: rgba(232,244,255,.25);--muted: rgba(232,244,255,.55);--accent: oklch(.88 .13 90);--accent-ink: oklch(.88 .13 90);--serif: "IBM Plex Mono", monospace;--sans: "IBM Plex Mono", monospace;--mono: "IBM Plex Mono", monospace}#composer-root[data-theme=dusk] .ed-list li .thumb,#composer-root[data-theme=neon] .ed-list li .thumb,#composer-root[data-theme=blueprint] .ed-list li .thumb{background:color-mix(in srgb,var(--ink) 8%,transparent)}#composer-root[data-theme=dusk] .dots span,#composer-root[data-theme=neon] .dots span,#composer-root[data-theme=blueprint] .dots span,#composer-root[data-theme=dusk] .progress .bar,#composer-root[data-theme=neon] .progress .bar,#composer-root[data-theme=blueprint] .progress .bar{background:color-mix(in srgb,var(--ink) 12%,transparent)}#composer-root[data-theme=dusk] .lp-opt[aria-pressed=true],#composer-root[data-theme=neon] .lp-opt[aria-pressed=true],#composer-root[data-theme=blueprint] .lp-opt[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}#composer-root .ed-preview-wrap,#composer-root .ed-preview{background:#ece5d6}#composer-root[data-theme=paper] .ed-stage{--sbg: #f6f2ea;--sbg-2: #ece5d6;--sink: #0e0d0b;--smuted: rgba(14,13,11,.55);--srule: rgba(14,13,11,.14);--sacc: oklch(.72 .14 55);--sacc-ink: oklch(.45 .13 55);--s-serif: "Instrument Serif", Georgia, serif;--s-sans: "Geist", system-ui, sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=mono] .ed-stage{--sbg: #ffffff;--sbg-2: #ffffff;--sink: #0a0a0a;--smuted: rgba(0,0,0,.5);--srule: rgba(0,0,0,.1);--sacc: #0a0a0a;--sacc-ink: #0a0a0a;--s-serif: "Space Grotesk", system-ui, sans-serif;--s-sans: "Space Grotesk", system-ui, sans-serif;--s-mono: "IBM Plex Mono", ui-monospace, monospace}#composer-root[data-theme=dusk] .ed-stage{--sbg: #0f1216;--sbg-2: #14181e;--sink: #f1ede3;--smuted: rgba(241,237,227,.55);--srule: rgba(241,237,227,.14);--sacc: oklch(.85 .16 75);--sacc-ink: oklch(.9 .14 75);--s-serif: "EB Garamond", Georgia, serif;--s-sans: "Geist", system-ui, sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=neon] .ed-stage{--sbg: #0a0a0f;--sbg-2: #0a0a0f;--sink: #f7f7ff;--smuted: rgba(247,247,255,.55);--srule: rgba(247,247,255,.15);--sacc: oklch(.85 .25 140);--sacc-ink: oklch(.9 .22 140);--s-serif: "Syne", "Space Grotesk", sans-serif;--s-sans: "Space Grotesk", sans-serif;--s-mono: "JetBrains Mono", ui-monospace, monospace}#composer-root[data-theme=journal] .ed-stage{--sbg: #efe7d6;--sbg-2: #e3d9c3;--sink: #2b2418;--smuted: rgba(43,36,24,.55);--srule: rgba(43,36,24,.2);--sacc: oklch(.55 .16 30);--sacc-ink: oklch(.45 .16 30);--s-serif: "Playfair Display", Georgia, serif;--s-sans: "Caveat", cursive;--s-mono: "IBM Plex Mono", monospace}#composer-root[data-theme=blueprint] .ed-stage{--sbg: #0d2540;--sbg-2: #0d2540;--sink: #e8f4ff;--smuted: rgba(232,244,255,.55);--srule: rgba(232,244,255,.25);--sacc: oklch(.92 .15 90);--sacc-ink: oklch(.92 .15 90);--s-serif: "IBM Plex Mono", monospace;--s-sans: "IBM Plex Mono", monospace;--s-mono: "IBM Plex Mono", monospace}html:has(.cv-page),body:has(.cv-page),body:has(.cv-page) #root{height:auto!important;min-height:100vh!important;overflow:visible!important}.cv-page{height:auto!important;min-height:100vh;max-height:none!important;overflow:visible!important}.cv-page .page-inner{height:auto!important;max-height:none!important;overflow:visible!important}.cv-sub{font-size:.9rem;color:var(--color-ink-muted);margin-top:.2rem}.cv-chat{display:flex;flex-direction:column;gap:.9rem;background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:1.4rem 1.2rem}.cv-row{display:flex;width:100%}.cv-row-left{justify-content:flex-start}.cv-row-right{justify-content:flex-end}.cv-bubble-wrap{display:flex;flex-direction:column;gap:.25rem;max-width:78%}.cv-row-right .cv-bubble-wrap{align-items:flex-end}.cv-name{font-family:var(--font-display);font-size:.7rem;font-weight:800;color:var(--color-ink-soft);letter-spacing:.08em;text-transform:uppercase;padding:0 .4rem}.cv-bubble{font-size:1rem;line-height:1.55;padding:.7rem 1rem;border-radius:18px;animation:sliderFadeUp .25s ease both;word-wrap:break-word}.cv-bubble-orange{background:var(--color-accent);color:#fff;border-bottom-left-radius:4px}.cv-bubble-white{background:var(--color-surface);color:var(--color-ink);border:1.5px solid var(--color-border);border-bottom-right-radius:4px}@media (max-width: 640px){.cv-bubble-wrap{max-width:88%}.cv-bubble{font-size:.95rem}}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-10{top:2.5rem;right:2.5rem;bottom:2.5rem;left:2.5rem}.left-0{left:0}.right-0{right:0}.right-10{right:2.5rem}.z-10{z-index:10}.z-30{z-index:30}.z-\[60\]{z-index:60}.z-\[999\]{z-index:999}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[2px\]{height:2px}.h-full{height:100%}.h-screen{height:100vh}.max-h-72{max-height:18rem}.max-h-\[440px\]{max-height:440px}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-20{width:5rem}.w-28{width:7rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-full{width:100%}.w-screen{width:100vw}.min-w-full{min-width:100%}.max-w-6xl{max-width:72rem}.max-w-\[12rem\]{max-width:12rem}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[20px\]{border-radius:20px}.rounded-\[24px\]{border-radius:24px}.rounded-\[28px\]{border-radius:28px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0px}.border-t-0{border-top-width:0px}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity))}.border-emerald-50{--tw-border-opacity: 1;border-color:rgb(236 253 245 / var(--tw-border-opacity))}.border-purple-600{--tw-border-opacity: 1;border-color:rgb(147 51 234 / var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity))}.bg-\[\#f6f3eb\]{--tw-bg-opacity: 1;background-color:rgb(246 243 235 / var(--tw-bg-opacity))}.bg-black\/50{background-color:#00000080}.bg-blue-700{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity))}.bg-emerald-600\/80{background-color:#059669cc}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-emerald-900\/15{--tw-gradient-from: rgb(6 78 59 / .15) var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 78 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-emerald-500\/10{--tw-gradient-to: rgb(16 185 129 / .1) var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-1{padding-bottom:.25rem}.pb-12{padding-bottom:3rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-3{padding-right:.75rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-7{line-height:1.75rem}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-tight{letter-spacing:-.025em}.text-\[\#f6f3eb\]{--tw-text-opacity: 1;color:rgb(246 243 235 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--color-bg: #f5f3ee;--color-surface: #ffffff;--color-border: #e2ddd5;--color-border-hover:#e07b39;--color-ink: #1a1a2e;--color-ink-mid: #6e6e80;--color-ink-soft: #888780;--color-ink-muted: #b4b2a9;--color-accent: #e07b39;--color-accent-dark: #c4651f;--color-accent-glow: rgba(224, 123, 57, .32);--color-accent-icon: #fff3e0;--font-display: "Baloo 2", sans-serif;--font-body: "Nunito", sans-serif;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 100px;--ease-out: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-ink);min-height:100vh;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:var(--font-body);cursor:pointer;border:none;background:none}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.text-ink{color:var(--color-ink)}.text-soft{color:var(--color-ink-soft)}.text-muted{color:var(--color-ink-muted)}.text-accent{color:var(--color-accent)}.bg-surface{background:var(--color-surface)}.bg-page{background:var(--color-bg)}.page-centered{display:flex;align-items:center;justify-content:center;min-height:100vh}.page-inner{width:100%;max-width:1040px;padding:3rem}.divider{border:none;border-top:2px solid var(--color-border);margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(26,26,46,.45);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}.modal-overlay.open{opacity:1;pointer-events:all}.modal-box{position:relative;background:var(--color-bg);border-radius:var(--radius-lg);max-width:620px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 24px 64px #1a1a2e2e;transform:translateY(12px);transition:transform .25s ease}.modal-overlay.open .modal-box{transform:translateY(0)}.modal-inner{padding:3rem}.modal-close{position:absolute;top:1.25rem;right:1.5rem;font-size:1rem;color:var(--color-ink-soft);padding:.25rem .5rem;transition:color .15s}.modal-close:hover{color:var(--color-ink)}.modal-title{font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--color-ink);margin-bottom:.25rem}.modal-subtitle{font-size:.82rem;color:var(--color-ink-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:2rem}.after\:clear-both:after{content:var(--tw-content);clear:both}.after\:block:after{content:var(--tw-content);display:block}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.hover\:border-slate-500:hover{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity))}.hover\:bg-emerald-100:hover{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity))}.hover\:bg-emerald-50:hover{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.hover\:text-emerald-800:hover{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-emerald-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity))}@media (min-width: 768px){.md\:float-right{float:right}.md\:float-left{float:left}.md\:ml-4{margin-left:1rem}.md\:mr-4{margin-right:1rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
