:root{--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--color-bg: #ffffff;--color-nav-bg: rgba(255, 255, 255, .92);--color-surface: #f7f7f5;--color-surface-hover: #eeeeea;--color-border: #e1e1dc;--color-text: #1a1a18;--color-text-secondary: #55554e;--color-text-tertiary: #8b8b82;--color-accent: #2954d6;--color-accent-strong: #1e3fa8;--color-accent-contrast: #ffffff;--color-accent-ring: rgba(41, 84, 214, .18);--color-danger: #d33a2c;--color-danger-surface: rgba(211, 58, 44, .08);--color-danger-border: rgba(211, 58, 44, .28);--color-success: #1f9254;--color-warning: #c97a12;--shadow-elevated: 0 6px 20px rgba(26, 26, 24, .1);--shadow-soft: 0 2px 8px rgba(26, 26, 24, .06);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 999px;--nav-height: 60px;--content-max-width: 1160px;--rule: 1px solid var(--color-border);--transition: .15s ease}html.dark-mode{--color-bg: #16171c;--color-nav-bg: rgba(22, 23, 28, .94);--color-surface: #1c1d23;--color-surface-hover: #24252c;--color-border: #34353d;--color-text: #f3f3f0;--color-text-secondary: #adada6;--color-text-tertiary: #797a80;--color-accent: #6c93ff;--color-accent-strong: #90adff;--color-accent-contrast: #0d0e11;--color-accent-ring: rgba(108, 147, 255, .28);--color-danger: #ff6b57;--color-danger-surface: rgba(255, 107, 87, .14);--color-danger-border: rgba(255, 107, 87, .32);--color-success: #3dd68c;--color-warning: #f0a93f;--shadow-elevated: 0 8px 24px rgba(0, 0, 0, .4);--shadow-soft: 0 2px 10px rgba(0, 0, 0, .25)}*{box-sizing:border-box}body{background-color:var(--color-bg);color:var(--color-text);font-size:16px;font-family:var(--font-sans);margin:0;padding-top:var(--nav-height);transition:background-color var(--transition),color var(--transition);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600}a{color:inherit}::selection{background:var(--color-accent);color:var(--color-accent-contrast)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.nav-container{display:flex;align-items:center;gap:4px;position:fixed;top:0;right:0;left:0;height:var(--nav-height);padding:0 24px;background-color:var(--color-nav-bg);border-bottom:var(--rule);z-index:1000;transition:background-color var(--transition),border-color var(--transition)}.nav-container.pc{justify-content:space-between}.nav-container.mobile.open{flex-direction:column;align-items:stretch;justify-content:flex-start;position:fixed;top:var(--nav-height);right:0;left:auto;height:auto;max-height:calc(100vh - var(--nav-height));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;width:min(70vw,280px);padding:10px;gap:2px;background-color:var(--color-bg);border-left:var(--rule)}.nav-container.mobile{display:none;justify-content:space-between}.nav-container.mobile p{margin:0;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-text)}.brand{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-text);text-decoration:none;margin-right:20px}.mobile-controls{display:flex;align-items:center;gap:8px}.nav-links{display:flex;align-items:center;gap:2px}.nav-right{display:flex;align-items:center;gap:14px}.nav-clock{font-family:var(--font-mono);font-size:.92rem;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width: 900px){.nav-clock{display:none}}.nav-container.mobile.open .nav-links{flex-direction:column;align-items:stretch}.nav-item{text-decoration:none;color:var(--color-text-secondary);font-size:.94rem;font-weight:500;padding:8px 12px;border-radius:var(--radius-sm);background-color:transparent;border-bottom:2px solid transparent;transition:color var(--transition),background-color var(--transition),border-color var(--transition)}.nav-item:hover{color:var(--color-text);background-color:var(--color-surface-hover)}.nav-item.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.hamburger-menu{background:none;border:none;cursor:pointer;padding:8px;z-index:1001}.hamburger-menu:active{opacity:.5}.hamburger-menu .bar{width:20px;height:1px;background-color:var(--color-text);margin:5px 0;transition:all .25s cubic-bezier(.2,.8,.2,1)}.hamburger-menu.open .bar:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger-menu.open .bar:nth-child(2){opacity:0}.hamburger-menu.open .bar:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.theme-switch{display:flex;align-items:center;gap:7px;background:none;border:none;cursor:pointer;padding:4px 2px;margin-left:4px;flex-shrink:0;-webkit-tap-highlight-color:transparent}.theme-switch-label{font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.theme-switch-track{position:relative;display:block;width:32px;height:16px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-pill);transition:border-color var(--transition)}.theme-switch-knob{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--color-text-tertiary);transform:translate(0);transition:transform .2s ease,background-color var(--transition)}.theme-switch.is-light .theme-switch-knob{transform:translate(16px);background:var(--color-accent)}.theme-switch:hover .theme-switch-track{border-color:var(--color-accent)}@media (max-width: 768px){.nav-container.pc{display:none}.nav-container.mobile{display:flex}}.footer-container{border-top:var(--rule);color:var(--color-text-tertiary);font-size:.92rem;margin-top:8vw;padding:1.75rem 6vw}.footer-content{max-width:var(--content-max-width);margin:0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.footer-content p{margin:0;font-family:var(--font-mono);letter-spacing:.01em}.footer-visits{display:flex;align-items:center;gap:.3rem}.visit-counter{color:var(--color-text-secondary);font-weight:600}.Main-component-wrapper{position:relative}.main-flex-container{position:relative;display:flex;flex-direction:column;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.cv-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:2.5rem}.cv-eyebrow-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 .9rem}.cv-eyebrow{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0}.cv-updated{font-family:var(--font-mono);font-size:.78rem;color:var(--color-text-tertiary);margin:0;white-space:nowrap}.cv-name{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,4rem);font-weight:600;line-height:1;letter-spacing:-.01em;color:var(--color-text);margin:0 0 .6rem}.cv-field{font-family:var(--font-mono);font-size:.92rem;color:var(--color-accent);margin:0 0 1.25rem;letter-spacing:.01em}.cv-summary{max-width:58ch;font-size:1.05rem;color:var(--color-text-secondary);line-height:1.65;margin:0 0 2rem}.cv-summary a{color:var(--color-accent);font-weight:500;text-decoration:none}.cv-summary a:hover{text-decoration:underline}.cv-subheading{font-family:var(--font-mono);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);margin:0 0 .7rem}.cv-dl{margin:0 0 1.75rem;display:flex;flex-direction:column;gap:.6rem}.cv-dl-row{display:grid;grid-template-columns:130px 1fr;gap:1rem}.cv-dl-row dt{font-family:var(--font-mono);font-size:.88rem;color:var(--color-text-tertiary)}.cv-dl-row dd{margin:0;font-size:1rem;line-height:1.55;color:var(--color-text)}.cv-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.cv-link-button{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.45rem .9rem .45rem .7rem;transition:background-color var(--transition),border-color var(--transition),color var(--transition),transform var(--transition)}.cv-link-button svg{flex-shrink:0}.cv-link-button:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-surface-hover);transform:translateY(-1px)}.main-buttons-title{display:flex;align-items:baseline;justify-content:space-between;width:100%;font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin:2.75rem 0 .9rem;padding-bottom:.5rem;border-bottom:var(--rule)}.section-view-all{font-family:var(--font-sans);font-size:.85rem;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--color-accent);text-decoration:none}.section-view-all:hover{text-decoration:underline}.liquid-card-wrapper{width:100%;margin-bottom:.5rem}.cv-row-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.cv-row{display:grid;grid-template-columns:155px 1fr;gap:1.25rem;padding:1.4rem 0;border-bottom:var(--rule)}.cv-row:last-child{border-bottom:none}.cv-row-date{font-family:var(--font-mono);font-size:.85rem;color:var(--color-accent);line-height:1.5}.cv-row-content{min-width:0}.cv-row-meta{display:block;font-family:var(--font-mono);font-size:.92rem;color:var(--color-text-tertiary);margin-bottom:.35rem}.cv-row h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text);line-height:1.4}.cv-skills{margin:0;display:flex;flex-direction:column}.cv-skills-row{display:grid;grid-template-columns:230px 1fr;gap:1.5rem;padding:1.5rem 0;border-bottom:var(--rule)}.cv-skills-row:last-child{border-bottom:none}.cv-skills-row dt{font-weight:600;font-size:1rem;color:var(--color-text)}.cv-skills-row dd{margin:0;font-size:1rem;line-height:1.6;color:var(--color-text-secondary)}@media (max-width: 768px){.main-flex-container{padding:5vh 6vw 3vh}.cv-dl-row,.cv-row,.cv-skills-row{grid-template-columns:1fr;gap:.35rem}.cv-eyebrow-row{flex-direction:column;align-items:flex-start;gap:.3rem}}.liquid-card{position:relative;width:100%;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);overflow:hidden}.liquid-card-scroll{max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.liquid-card-scroll::-webkit-scrollbar{width:6px}.liquid-card-scroll::-webkit-scrollbar-thumb{background:var(--color-border)}.liquid-card-item{display:flex;align-items:baseline;gap:1.1rem;padding:1.1rem 1.5rem;border-bottom:var(--rule)}.liquid-card-item:last-child{border-bottom:none}.liquid-card-index{flex:0 0 auto;font-family:var(--font-mono);font-size:.92rem;color:var(--color-accent)}.liquid-card-body{min-width:0;flex:1}.liquid-card-tag{display:inline-block;font-family:var(--font-mono);font-size:.84rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:.5rem}.liquid-card-body h3{margin:0 0 .3rem;font-family:var(--font-sans);font-size:1.05rem;font-weight:600;color:var(--color-text)}.liquid-card-body p{margin:0;font-size:1rem;line-height:1.5;color:var(--color-text-secondary)}@media (max-width: 480px){.liquid-card-scroll{max-height:280px}.liquid-card-item{padding:.9rem 1.1rem;gap:.8rem}}.liquid-card-row{display:flex;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.liquid-card-row::-webkit-scrollbar{height:6px}.liquid-card-row::-webkit-scrollbar-thumb{background:var(--color-border)}.liquid-card-tile{flex:0 0 auto;width:220px;background:var(--color-surface);border-right:var(--rule)}.liquid-card-tile:last-child{border-right:none}.liquid-card-tile-body{padding:1.1rem 1.15rem;min-width:0}.liquid-card-tile-body h3{margin:0 0 .4rem;font-family:var(--font-sans);font-size:1.02rem;font-weight:600;color:var(--color-text)}.liquid-card-tile-body p{margin:0;font-size:.96rem;line-height:1.5;color:var(--color-text-secondary)}@media (max-width: 480px){.liquid-card-tile{width:180px}}.Profit-wrapper{width:100%;min-height:100vh;padding:8vh 6vw 4vh;display:flex;justify-content:center;color:var(--color-text)}.profit-container{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:2rem}.profit-header{text-align:center;margin-bottom:1rem}.profit-title{font-family:var(--font-display);font-size:clamp(1.9rem,4vw,2.75rem);font-weight:600;margin:0;color:var(--color-text)}.profit-subtitle{color:var(--color-text-tertiary);margin-top:.5rem;font-size:.95rem}.profit-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.profit-card{background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.profit-card h3{margin:0;padding:0;font-size:1.25rem;font-weight:700;color:var(--color-text)}.reset-btn{background:var(--color-danger-surface);border:1px solid var(--color-danger-border);color:var(--color-danger);padding:.4rem .8rem;border-radius:var(--radius-sm);font-size:.87rem;cursor:pointer;transition:background-color var(--transition),transform var(--transition)}.reset-btn:hover{background:var(--color-danger-border);transform:translateY(-1px)}.input-group{margin-bottom:1.2rem;display:flex;flex-direction:column}.input-group label{font-size:.92rem;color:var(--color-text-secondary);margin-bottom:.5rem}.input-group input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem;color:var(--color-text);font-family:var(--font-mono);font-size:1.02rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.input-group input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring)}.divider{height:1px;background:var(--color-border);margin:1rem 0}.result-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem;padding-bottom:.5rem;border-bottom:1px dashed var(--color-border)}.result-row .label{color:var(--color-text-secondary);font-size:.95rem;min-width:120px}.result-row .value{font-family:var(--font-mono);font-size:clamp(1rem,2.5vw,1.15rem);font-weight:600;text-align:right;flex:1;word-break:break-all}.highlight-blue{color:var(--color-accent)}.big-total{margin-top:auto;border-bottom:none;border-top:2px solid var(--color-border);padding-top:1.5rem;align-items:center;flex-wrap:nowrap}.big-total .label{min-width:auto;padding-right:1rem}.big-total .value{font-size:clamp(1.4rem,4vw,1.85rem);white-space:nowrap}.profit-plus{color:var(--color-success)}.profit-minus{color:var(--color-danger)}.chart-bar-container{margin:1.5rem 0}.chart-label{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem;color:var(--color-text-secondary);margin-bottom:.5rem}.chart-label>span:first-child{font-weight:600;color:var(--color-text-secondary)}.sub-text{font-size:.87rem;color:var(--color-text-tertiary);word-break:keep-all}.progress-bar-bg{width:100%;height:8px;background:var(--color-border);border-radius:var(--radius-pill);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent);transition:width .5s ease-out}.summary-text{text-align:right;font-size:.87rem;color:var(--color-text-tertiary);margin-top:1rem}.summary-text p{margin:3px 0;line-height:1.4;word-break:keep-all}@media (max-width: 768px){.Profit-wrapper{padding:6vh 4vw 3vh;align-items:flex-start}.profit-grid{grid-template-columns:1fr;gap:1rem}.profit-card{padding:1.2rem}.profit-title{font-size:1.75rem;margin-bottom:.2rem}.profit-subtitle{font-size:.92rem;margin-bottom:1rem}.input-group{margin-bottom:.8rem}.input-group label{font-size:.92rem;margin-bottom:.3rem}.divider{margin:.8rem 0}.card-header-row{margin-bottom:1rem}.input-group input{font-size:16px;padding:12px}.result-row{margin-bottom:.8rem}.result-row .label{font-size:.9rem}.chart-bar-container{margin:1rem 0}.big-total .label{font-size:.9rem}.summary-text{font-size:.94rem}}@media (max-width: 380px){.Profit-wrapper{padding:4vh 1rem 2vh}.profit-title{font-size:1.6rem}.profit-card{padding:1rem}}.tilt-card{transition:border-color var(--transition),background-color var(--transition)}.Publications{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.page-eyebrow{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0 0 .6rem}.publications-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:.5rem}.publications-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.publications-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.publications-row{display:grid;grid-template-columns:155px 1fr;gap:1.25rem;padding:1.75rem 0;border-bottom:var(--rule)}.publications-row:last-child{border-bottom:none}.publications-year{font-family:var(--font-mono);font-size:.9rem;color:var(--color-accent);line-height:1.5}.publications-content{min-width:0}.publications-authors{margin:0 0 .5rem;font-size:1rem;color:var(--color-text-secondary)}.publications-authors strong{color:var(--color-text)}.publications-venue{display:block;font-family:var(--font-mono);font-size:.92rem;color:var(--color-text-tertiary);margin-top:.5rem}.publications-row h3{margin:0;font-size:1.15rem;font-weight:600;color:var(--color-text);line-height:1.4}.publications-detail{margin:.75rem 0 0;font-size:1rem;line-height:1.6;color:var(--color-text-secondary)}.publications-link{display:inline-block;margin-top:.6rem;color:var(--color-accent);font-weight:600;font-size:.95rem;text-decoration:none}.publications-link:hover{text-decoration:underline}@media (max-width: 700px){.Publications{padding:5vh 6vw 3vh}.publications-row{grid-template-columns:1fr;gap:.5rem}}.News{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.news-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:.5rem}.news-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.news-list{display:flex;flex-direction:column}.news-row{display:grid;grid-template-columns:48px 1fr;gap:1.25rem;padding:1.5rem 0;border-bottom:var(--rule)}.news-row:last-child{border-bottom:none}.news-index{font-family:var(--font-mono);font-size:.87rem;color:var(--color-text-tertiary);padding-top:.2rem}.news-content{min-width:0}.news-tag{display:inline-block;font-family:var(--font-mono);font-size:.92rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:.6rem}.news-row h3{margin:0 0 .4rem;font-size:1.1rem;font-weight:600;color:var(--color-text)}.news-detail{margin:0;color:var(--color-text-secondary);font-size:.95rem;line-height:1.6}@media (max-width: 768px){.News{padding:5vh 6vw 3vh}}.Games{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:8vh 6vw 4vh}.games-header{margin-bottom:2rem}.games-header h1{font-family:var(--font-display);font-size:clamp(2rem,4vw,2.75rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.games-header p{color:var(--color-text-secondary);font-size:1rem;margin:0}.games-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}.games-tab{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.6rem 1.1rem;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),color var(--transition),transform var(--transition)}.games-tab:hover{color:var(--color-text);background:var(--color-surface-hover);transform:translateY(-1px)}.games-tab.active{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-accent)}.games-tab-icon{font-size:1rem}.games-stage{display:flex;justify-content:center}.game-panel{width:100%;min-width:0;max-width:420px;text-align:center;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:2rem}.game-status{font-size:1.05rem;font-weight:700;color:var(--color-text);margin-bottom:1.25rem;min-height:1.5em}.game-reset{margin-top:1.5rem;font-size:.92rem;font-weight:600;color:var(--color-accent);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.5rem 1.2rem;cursor:pointer;transition:border-color var(--transition)}.game-reset:hover{border-color:var(--color-accent)}@media (max-width: 600px){.Games{padding:6vh 6vw 3vh}.game-panel{padding:1.5rem}}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;width:min(320px,80vw);margin:0 auto}.ttt-cell{aspect-ratio:1;font-size:clamp(1.75rem,6vw,2.25rem);font-weight:800;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition),border-color var(--transition),transform var(--transition)}.ttt-cell:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-accent)}.ttt-cell:active{transform:scale(.95)}.ttt-x{color:var(--color-accent)}.ttt-o{color:var(--color-success)}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;width:min(360px,85vw);margin:0 auto}.memory-card{aspect-ratio:1;font-size:clamp(1.25rem,5vw,1.6rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition),border-color var(--transition),transform var(--transition)}.memory-card:hover{border-color:var(--color-accent)}.memory-card:active{transform:scale(.94)}.memory-card.face-up{background:var(--color-surface-hover)}.memory-card.matched{border-color:var(--color-success);opacity:.6}.rps-choices{display:flex;justify-content:center;gap:.75rem}.rps-choice{font-size:1.75rem;width:64px;height:64px;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;transition:background-color var(--transition),border-color var(--transition),transform var(--transition)}.rps-choice:hover{background:var(--color-surface-hover);border-color:var(--color-accent);transform:translateY(-2px)}.rps-choice:active{transform:translateY(0) scale(.95)}.rps-versus{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.25rem}.rps-versus-icon{font-size:2.5rem}.rps-versus-vs{font-size:.92rem;color:var(--color-text-tertiary);font-weight:600}.rps-score{margin-top:1rem;font-size:.9rem;color:var(--color-text-secondary)}.lottery-picked{font-size:1.75rem;font-weight:800;color:var(--color-accent);margin-bottom:1.25rem;animation:lottery-pop .35s cubic-bezier(.34,1.56,.64,1)}.lottery-picked.rolling{color:var(--color-text-tertiary);filter:blur(.4px);animation:lottery-flicker .06s ease}@keyframes lottery-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes lottery-flicker{0%{opacity:.4;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.lottery-history-item{animation:lottery-item-in .3s ease both}@keyframes lottery-item-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.lottery-draw-btn{font-size:1rem;font-weight:700;color:var(--color-accent-contrast);background:var(--color-accent-strong);border:none;border-radius:var(--radius-pill);padding:.75rem 2rem;cursor:pointer;transition:transform var(--transition),opacity var(--transition)}.lottery-draw-btn:hover:not(:disabled){transform:translateY(-2px)}.lottery-draw-btn:disabled{opacity:.4;cursor:not-allowed}.lottery-history{margin:1.5rem 0 0;padding-left:1.4rem;text-align:left;color:var(--color-text-secondary);font-size:.9rem}.lottery-history li{margin-bottom:.3rem}.name-input-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.name-input-row{display:flex;align-items:center;gap:.5rem}.name-input-index{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.94rem;font-weight:700;color:var(--color-text-tertiary);background:var(--color-surface-hover);border-radius:50%}.name-input{flex:1;min-width:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:.6rem .75rem;font-size:.95rem;font-family:inherit}.name-input:focus{outline:none;border-color:var(--color-accent)}.name-input-remove{flex-shrink:0;width:30px;height:30px;font-size:1.1rem;line-height:1;color:var(--color-text-tertiary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition),border-color var(--transition)}.name-input-remove:hover:not(:disabled){color:var(--color-danger);border-color:var(--color-danger-border)}.name-input-remove:disabled{opacity:.3;cursor:not-allowed}.name-input-add{align-self:flex-start;font-size:.92rem;font-weight:600;color:var(--color-accent);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-sm);padding:.5rem 1rem;cursor:pointer;transition:border-color var(--transition),background-color var(--transition)}.name-input-add:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-surface-hover)}.name-input-add:disabled{opacity:.4;cursor:not-allowed}.ladder-setup-columns{display:flex;gap:1rem;text-align:left}.ladder-setup-columns>div{flex:1;min-width:0}@media (max-width: 460px){.ladder-setup-columns{flex-direction:column;gap:1.25rem}}.ladder-setup-label{font-size:.87rem;color:var(--color-text-tertiary);margin:0 0 .4rem}.ladder-scroll{overflow-x:auto;padding-bottom:.5rem}.ladder-labels-row{display:flex;margin:0 auto}.ladder-label-btn{font-size:.92rem;font-weight:600;text-align:center;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:.4rem .2rem;transition:color var(--transition)}.ladder-label-btn:hover,.ladder-label-btn.active{color:var(--color-accent)}.ladder-result-label{font-size:.92rem;font-weight:600;text-align:center;color:var(--color-text-secondary);padding:.4rem .2rem}.ladder-result-label.active{color:var(--color-accent);font-weight:800}.ladder-svg{display:block;margin:0 auto}.ladder-line{stroke:var(--color-border);stroke-width:2}.ladder-path{fill:none;stroke:var(--color-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ladder-path.completed{stroke-width:2.5;opacity:.7}.ladder-label-btn.used{opacity:.45;text-decoration:line-through}.ladder-label-btn:disabled{cursor:not-allowed;opacity:.6}.ladder-marker{fill:var(--color-accent-contrast);stroke:var(--color-accent);stroke-width:2;filter:drop-shadow(0 0 4px var(--color-accent))}.wheel-scene{position:relative;width:260px;height:260px;margin:0 auto 1.5rem}.wheel-svg{display:block;transition:transform 3s cubic-bezier(.17,.67,.12,.99);filter:drop-shadow(0 10px 25px rgba(0,0,0,.35))}.wheel-label{font-size:12px;font-weight:700;fill:#fff;paint-order:stroke;stroke:#00000059;stroke-width:2px}.wheel-pointer{position:absolute;top:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:16px solid var(--color-accent);z-index:2}.Thoughts{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.thoughts-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:.5rem}.thoughts-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.thoughts-list{display:flex;flex-direction:column}.thought-row{display:grid;grid-template-columns:130px 1fr;gap:1.5rem;padding:1.4rem 0;border-bottom:var(--rule)}.thought-row:last-child{border-bottom:none}.thought-date{font-family:var(--font-mono);font-size:.94rem;color:var(--color-text-tertiary)}.thought-text{margin:0;font-size:1.02rem;color:var(--color-text);line-height:1.6}@media (max-width: 600px){.Thoughts{padding:5vh 6vw 3vh}.thought-row{grid-template-columns:1fr;gap:.4rem}}.Weather{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.weather-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:2rem}.weather-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}@media (max-width: 768px){.Weather{padding:5vh 6vw 3vh}}.seoul-widget{position:relative;display:flex;flex-direction:column;gap:1.5rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.5rem 2rem}.seoul-widget-search{position:relative;align-self:flex-end;width:min(220px,100%)}.seoul-search-input{width:100%;background:var(--color-bg);border:var(--rule);color:var(--color-text);padding:.45rem .9rem;font-size:.92rem;font-family:inherit;box-sizing:border-box}.seoul-search-input:focus{outline:none;border-color:var(--color-accent)}.seoul-search-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;display:flex;flex-direction:column;gap:1px;padding:4px;background:var(--color-surface);border:var(--rule);box-shadow:var(--shadow-elevated);z-index:5}.seoul-search-suggestion{text-align:left;font-size:.92rem;color:var(--color-text-secondary);background:none;border:none;border-radius:var(--radius-sm);padding:.5rem .6rem;cursor:pointer;transition:background-color var(--transition),color var(--transition)}.seoul-search-suggestion:hover{background:var(--color-surface-hover);color:var(--color-text)}.seoul-widget-now{display:flex;align-items:center;gap:1.5rem}.seoul-widget-clock{display:flex;flex-direction:column;gap:.25rem}.seoul-widget-time{font-family:var(--font-mono);font-size:clamp(1.4rem,3vw,1.75rem);font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-text)}.seoul-widget-date{font-size:.92rem;color:var(--color-text-secondary)}.seoul-widget-divider{width:1px;height:42px;background:var(--color-border);flex-shrink:0}.seoul-widget-weather{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.seoul-widget-weather-icon{font-size:1.75rem}.seoul-widget-weather-temp{font-size:1.3rem;font-weight:700;color:var(--color-text)}.seoul-widget-weather-label{font-size:.92rem;color:var(--color-text-secondary)}.seoul-widget-status{font-size:.92rem;color:var(--color-text-tertiary)}.seoul-hourly-strip{display:flex;gap:.4rem;overflow-x:auto;padding-top:1.25rem;padding-bottom:.25rem;border-top:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.seoul-hourly-strip::-webkit-scrollbar{height:5px}.seoul-hourly-strip::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-pill)}.seoul-hourly-slot{flex:0 0 auto;min-width:52px;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem .35rem;border-radius:var(--radius-sm)}.seoul-hourly-label{font-size:.87rem;font-weight:600;color:var(--color-text-tertiary);white-space:nowrap}.seoul-hourly-icon{font-size:1.2rem}.seoul-hourly-temp{font-size:.92rem;font-weight:700;color:var(--color-text)}.seoul-hourly-slot.is-past{opacity:.45}.seoul-hourly-slot.is-now{background:var(--color-surface-hover);border-radius:var(--radius-sm)}.seoul-hourly-slot.is-now .seoul-hourly-label{color:var(--color-accent);font-weight:800}.seoul-forecast-strip{display:flex;gap:.5rem;overflow-x:auto;padding-top:1.25rem;border-top:1px solid var(--color-border)}.seoul-forecast-day{flex:1;min-width:68px;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.5rem .25rem;border-radius:var(--radius-sm)}.seoul-forecast-day-label{font-size:.94rem;font-weight:600;color:var(--color-text-tertiary)}.seoul-forecast-day-icon{font-size:1.4rem}.seoul-forecast-day-temps{font-size:.87rem;white-space:nowrap}.seoul-forecast-day-high{color:var(--color-text);font-weight:700}.seoul-forecast-day-low{color:var(--color-text-tertiary)}.seoul-forecast-day.is-past{opacity:.5}.seoul-forecast-day.is-today{background:var(--color-surface-hover)}.seoul-forecast-day.is-today .seoul-forecast-day-label{color:var(--color-accent);font-weight:800}.seoul-aq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.seoul-aq-tile{display:flex;flex-direction:column;gap:.3rem;background:var(--color-surface-hover);border-radius:var(--radius-sm);padding:.75rem .9rem}.seoul-aq-label{font-size:.94rem;color:var(--color-text-tertiary)}.seoul-aq-value{font-size:1.05rem;font-weight:700;color:var(--color-text)}.seoul-aq-value small{font-size:.92rem;font-weight:500;color:var(--color-text-tertiary)}.seoul-aq-grade{font-size:.87rem;font-weight:700}@media (max-width: 600px){.seoul-widget{padding:1.25rem 1.5rem}.seoul-widget-now{flex-direction:column;align-items:flex-start;gap:.75rem}.seoul-widget-divider{display:none}.seoul-aq-grid{grid-template-columns:1fr}.seoul-widget-search{align-self:stretch;width:100%}}.Papers{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.papers-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.5rem}.papers-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.papers-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.75rem}.papers-tabs{display:flex;flex-wrap:wrap;gap:.6rem}.papers-toggle{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.papers-toggle input{accent-color:var(--color-accent);width:15px;height:15px;cursor:pointer}.papers-tab{font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-pill);padding:.45rem 1rem;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}.papers-tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.papers-tab.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.papers-tab:focus-visible,.papers-retry:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.papers-status{color:var(--color-text-tertiary);font-size:.95rem}.papers-retry{font-family:var(--font-mono);font-size:.88rem;font-weight:600;color:var(--color-accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}.papers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.papers-row{display:grid;grid-template-columns:130px 1fr;gap:1.25rem;padding:1.5rem .75rem;margin:0 -.75rem;border-bottom:var(--rule);border-radius:var(--radius-sm);transition:background-color var(--transition)}.papers-row:hover{background:var(--color-surface-hover)}.papers-row:last-child{border-bottom:none}.papers-date{font-family:var(--font-mono);font-size:.85rem;color:var(--color-accent);line-height:1.5}.papers-content{min-width:0}.papers-content h3{margin:0 0 .35rem;font-size:1.1rem;font-weight:600;line-height:1.4}.papers-content h3 a{color:var(--color-text);text-decoration:none}.papers-content h3 a:hover{color:var(--color-accent);text-decoration:underline}.papers-meta{display:block;font-family:var(--font-mono);font-size:.88rem;color:var(--color-text-tertiary)}.papers-abstract{margin:.6rem 0 0;font-size:.96rem;line-height:1.6;color:var(--color-text-secondary)}@media (max-width: 700px){.Papers{padding:5vh 6vw 3vh}.papers-row{grid-template-columns:1fr;gap:.4rem}}.Rates{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.rates-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:2rem}.rates-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.rates-subheading{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);margin:2rem 0 1rem}.rates-subheading.is-first{margin-top:0}.rates-chart-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.rates-chart-header .rates-subheading{margin-bottom:1rem}.rates-range-controls{display:flex;gap:.4rem}.rates-range-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition),color var(--transition)}.rates-range-btn:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.rates-range-btn:disabled{opacity:.4;cursor:default}.rates-range-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.rates-status{color:var(--color-text-tertiary);font-size:.95rem}.rates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}.rates-tile{display:flex;flex-direction:column;gap:.35rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;transition:box-shadow var(--transition),transform var(--transition)}.rates-tile:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.rates-tile-label{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-tertiary)}.rates-tile-value{font-size:1.3rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.rates-tile-sub{font-size:.9rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.rates-tile-change{font-size:.88rem;font-weight:600}.rates-tile-change.is-up{color:var(--color-success)}.rates-tile-change.is-down{color:var(--color-danger)}.fx-chart{background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.1rem 1.25rem .9rem}.fx-chart-svg{width:100%;height:auto;display:block;overflow:visible;touch-action:none}.fx-chart-gridline{stroke:var(--color-border);stroke-width:1}.fx-chart-axis-label{font-family:var(--font-mono);font-size:9px;fill:var(--color-text-tertiary)}.fx-chart-line{fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.fx-chart-end-ring{fill:var(--color-surface)}.fx-chart-end-dot{fill:var(--color-accent)}.fx-chart-end-label{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--color-text)}.fx-chart-crosshair{stroke:var(--color-text-tertiary);stroke-width:1}.fx-chart-hover-dot{fill:var(--color-accent-strong)}.fx-chart-tooltip-bg{fill:var(--color-surface-hover);stroke:var(--color-border);stroke-width:1}.fx-chart-tooltip-value{font-family:var(--font-mono);font-size:12px;font-weight:700;fill:var(--color-text)}.fx-chart-tooltip-date{font-family:var(--font-mono);font-size:10px;fill:var(--color-text-tertiary)}.fx-chart-table-toggle{margin-top:.5rem}.fx-chart-table-toggle summary{cursor:pointer;font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-tertiary);padding:.5rem 0}.fx-chart-table-toggle summary:hover{color:var(--color-text)}.fx-chart-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-bottom:.75rem}.fx-chart-table th,.fx-chart-table td{text-align:left;padding:.4rem .6rem;border-bottom:var(--rule);font-variant-numeric:tabular-nums}.fx-chart-table th{color:var(--color-text-tertiary);font-weight:500;font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}@media (max-width: 700px){.Rates{padding:5vh 6vw 3vh}.rates-grid{grid-template-columns:repeat(2,1fr)}}.MyIP{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.myip-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:2rem}.myip-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.myip-status{color:var(--color-text-tertiary);font-size:.95rem}.myip-address{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.5rem 1.75rem;margin-bottom:1.5rem}.myip-actions{display:flex;gap:.6rem}.myip-ip{font-family:var(--font-mono);font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:.01em}.myip-copy{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-accent);background:var(--color-surface-hover);border:var(--rule);border-radius:var(--radius-sm);padding:.4rem .9rem;cursor:pointer;transition:background-color var(--transition),color var(--transition)}.myip-copy:hover{background:var(--color-accent);color:var(--color-accent-contrast)}.myip-copy:focus-visible,.myip-refresh:focus-visible,.myip-retry:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.myip-refresh{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface-hover);border:var(--rule);border-radius:var(--radius-sm);padding:.4rem .9rem;cursor:pointer;transition:background-color var(--transition),color var(--transition)}.myip-refresh:hover:not(:disabled){background:var(--color-accent);color:var(--color-accent-contrast)}.myip-refresh:disabled{opacity:.6;cursor:default}.myip-retry{font-family:var(--font-mono);font-size:.88rem;font-weight:600;color:var(--color-accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}.myip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.myip-tile{display:flex;flex-direction:column;gap:.35rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;transition:box-shadow var(--transition),transform var(--transition)}.myip-tile:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.myip-tile-label{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary)}.myip-tile-value{font-size:1.02rem;font-weight:600;color:var(--color-text)}@media (max-width: 700px){.MyIP{padding:5vh 6vw 3vh}}.OnThisDay{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.otd-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.5rem}.otd-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.otd-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.75rem}.otd-tab{font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-pill);padding:.45rem 1rem;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}.otd-tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.otd-tab.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.otd-tab:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.otd-status{color:var(--color-text-tertiary);font-size:.95rem}.otd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.otd-row{display:grid;grid-template-columns:80px 1fr;gap:1.25rem;padding:1.1rem .75rem;margin:0 -.75rem;border-bottom:var(--rule);border-radius:var(--radius-sm);transition:background-color var(--transition)}.otd-row:hover{background:var(--color-surface-hover)}.otd-row:last-child{border-bottom:none}.otd-year{font-family:var(--font-mono);font-weight:700;font-size:.95rem;color:var(--color-accent);line-height:1.5}.otd-content{min-width:0}.otd-content p{margin:0;font-size:1rem;line-height:1.6;color:var(--color-text)}.otd-content a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--color-text-tertiary)}.otd-content a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}@media (max-width: 700px){.OnThisDay{padding:5vh 6vw 3vh}.otd-row{grid-template-columns:1fr;gap:.3rem}}.Almanac{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.almanac-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.5rem}.almanac-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.page-lede a{color:var(--color-accent);font-weight:600;text-decoration:none}.page-lede a:hover{text-decoration:underline}.almanac-subheading{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);margin:2rem 0 1rem}.almanac-subheading.is-first{margin-top:0}.almanac-status{color:var(--color-text-tertiary);font-size:.95rem}.almanac-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem}.almanac-tile{display:flex;flex-direction:column;gap:.35rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;transition:box-shadow var(--transition),transform var(--transition)}.almanac-tile:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.almanac-tile-label{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary)}.almanac-tile-value{font-size:1.3rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}@media (max-width: 700px){.Almanac{padding:5vh 6vw 3vh}}.Holidays{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.holidays-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.75rem}.holidays-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.page-lede{color:var(--color-text-secondary);font-size:1rem;margin:0;max-width:62ch}.holidays-status{color:var(--color-text-tertiary);font-size:.95rem}.holidays-hero{display:flex;align-items:center;gap:1.5rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.75rem 2rem;margin-bottom:1.75rem;flex-wrap:wrap;transition:box-shadow var(--transition)}.holidays-hero:hover{box-shadow:var(--shadow-soft)}.holidays-hero-dday{font-family:var(--font-mono);font-size:clamp(2rem,6vw,3rem);font-weight:700;color:var(--color-accent);font-variant-numeric:tabular-nums;flex-shrink:0}.holidays-hero-content h2{margin:0 0 .3rem;font-size:1.4rem;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.holidays-hero-date{font-family:var(--font-mono);font-size:.95rem;color:var(--color-text-tertiary)}.holidays-hero-note{margin:.5rem 0 0;font-size:.92rem;color:var(--color-text-secondary)}.holidays-tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;font-weight:600;color:var(--color-warning);background:#c97a121f;border-radius:var(--radius-pill);padding:.15rem .55rem;letter-spacing:.02em}.holidays-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.holidays-row{display:grid;grid-template-columns:70px 1fr;gap:1.25rem;padding:.9rem .75rem;margin:0 -.75rem;border-bottom:var(--rule);border-radius:var(--radius-sm);align-items:baseline;transition:background-color var(--transition)}.holidays-row:hover{background:var(--color-surface-hover)}.holidays-row:last-child{border-bottom:none}.holidays-dday{font-family:var(--font-mono);font-weight:700;font-size:.92rem;color:var(--color-accent)}.holidays-content{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;min-width:0}.holidays-date{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-tertiary);min-width:6.5em}.holidays-name{font-size:1.02rem;font-weight:600;color:var(--color-text);display:inline-flex;align-items:center;gap:.5rem}.holidays-en{font-size:.88rem;color:var(--color-text-tertiary)}@media (max-width: 700px){.Holidays{padding:5vh 6vw 3vh}.holidays-hero{padding:1.5rem}}.Planet{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.planet-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.5rem}.planet-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.planet-subheading{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);margin:2rem 0 1rem}.planet-subheading.is-first{margin-top:0}.planet-status{color:var(--color-text-tertiary);font-size:.95rem}.planet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:.9rem}.planet-tile{display:flex;flex-direction:column;gap:.35rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;transition:box-shadow var(--transition),transform var(--transition)}.planet-tile:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.planet-tile-label{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary)}.planet-tile-value{font-size:1.2rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.planet-tile-value-cap{text-transform:capitalize}.planet-map-link{display:inline-block;font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--color-accent);text-decoration:none}.planet-map-link:hover{text-decoration:underline}.planet-map-link:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring);border-radius:var(--radius-sm)}.planet-quake-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.planet-legend{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:.75rem;font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-tertiary)}.planet-legend span{display:inline-flex;align-items:center;gap:.4rem}.planet-legend-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent);display:inline-block}.planet-legend-dot.is-moderate{background:var(--color-warning)}.planet-legend-dot.is-severe{background:var(--color-danger)}.planet-quake-row{display:grid;grid-template-columns:56px 1fr;gap:1.1rem;padding:.85rem .75rem;margin:0 -.75rem;border-bottom:var(--rule);border-radius:var(--radius-sm);align-items:baseline;transition:background-color var(--transition)}.planet-quake-row:hover{background:var(--color-surface-hover)}.planet-quake-row:last-child{border-bottom:none}.planet-quake-mag{font-family:var(--font-mono);font-weight:700;font-size:.95rem;color:var(--color-accent)}.planet-quake-mag.is-moderate{color:var(--color-warning)}.planet-quake-mag.is-severe{color:var(--color-danger)}.planet-quake-content{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;min-width:0}.planet-quake-content a{color:var(--color-text);text-decoration:none;font-weight:500}.planet-quake-content a:hover{color:var(--color-accent);text-decoration:underline}.planet-quake-time{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-tertiary);white-space:nowrap}@media (max-width: 700px){.Planet{padding:5vh 6vw 3vh}}.Moon{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.moon-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.5rem}.moon-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.moon-subheading{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);margin:2rem 0 1rem}.moon-subheading.is-first{margin-top:0}.moon-phase-row,.moon-sky-row{display:flex;align-items:center;gap:1.75rem;flex-wrap:wrap}.moon-phase-info{flex:1;min-width:220px}.moon-phase-name{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--color-text);margin:0 0 .9rem}.moon-phase-name-ko{font-family:var(--font-sans);font-size:1rem;font-weight:400;color:var(--color-text-tertiary)}.moon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem;flex:1;min-width:260px}.moon-tile{display:flex;flex-direction:column;gap:.35rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;transition:box-shadow var(--transition),transform var(--transition)}.moon-tile:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.moon-tile-label{font-family:var(--font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary)}.moon-tile-value{font-size:1.3rem;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.moon-note{margin-top:2.25rem;padding-top:1.25rem;border-top:var(--rule);color:var(--color-text-tertiary);font-size:.88rem}.moon-phase-disc{flex-shrink:0}.moon-phase-dark{fill:#1b2333}.moon-phase-light{fill:#f4ecd0}.moon-phase-outline{fill:none;stroke:var(--color-border);stroke-width:1}.sky-dome{flex-shrink:0;width:min(100%,320px);height:auto;border-radius:50%;box-shadow:var(--shadow-elevated)}.sky-dome-horizon{fill:none;stroke:#ffffff2e;stroke-width:1}.sky-dome-compass{font-family:var(--font-mono);font-size:.7rem;fill:#ffffff8c}.sky-dome-below{font-family:var(--font-mono);font-size:.72rem;fill:#ffffff8c}.sky-dome-star-halo{fill:#fdf7e6;opacity:.15}.sky-dome-star-core{fill:#fdf7e6;animation:sky-dome-twinkle 3.6s ease-in-out infinite}.sky-dome-star-label{font-family:var(--font-mono);font-size:.6rem;fill:#ffffffa6}@keyframes sky-dome-twinkle{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.sky-dome-star-core{animation:none;opacity:.9}}.sky-dome-moon-halo{fill:#fff7e0;opacity:.35}@media (max-width: 700px){.Moon{padding:5vh 6vw 3vh}.moon-phase-row,.moon-sky-row{flex-direction:column;align-items:flex-start}}.Others{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.others-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:2rem}.others-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.others-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.others-card{display:flex;flex-direction:column;gap:.5rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;text-decoration:none;transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition)}.others-card:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px);border-color:var(--color-accent)}.others-card-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--color-text)}.others-card-desc{color:var(--color-text-secondary);font-size:.9rem;line-height:1.45}@media (max-width: 700px){.Others{padding:5vh 6vw 3vh}}.Curves{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.curves-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.75rem}.curves-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.curves-type-row{display:flex;gap:.4rem;margin-bottom:1.5rem;flex-wrap:wrap}.curves-type-btn{font-family:var(--font-mono);font-size:.82rem;font-weight:500;letter-spacing:.02em;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-pill);padding:.5rem 1rem;cursor:pointer;transition:color var(--transition),background-color var(--transition),border-color var(--transition)}.curves-type-btn:hover{color:var(--color-text);background:var(--color-surface-hover)}.curves-type-btn.active{color:var(--color-accent-contrast);background:var(--color-accent);border-color:var(--color-accent)}.curves-layout{display:flex;gap:2rem;align-items:flex-start;flex-wrap:wrap}.curves-canvas-wrap{flex:1 1 320px;max-width:420px;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:.75rem}.curves-canvas{display:block;width:100%;height:auto;aspect-ratio:1}.curves-axis{stroke:var(--color-border);stroke-width:.6;stroke-dasharray:2 3}.curves-boundary{fill:none;stroke:var(--color-border);stroke-width:.5}.curves-path{fill:none;stroke:var(--color-accent);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}.curves-dot{fill:var(--color-accent);opacity:0;filter:drop-shadow(0 0 3px var(--color-accent))}.curves-dot.is-playing{opacity:1}.curves-controls{flex:1 1 280px;min-width:240px;display:flex;flex-direction:column;gap:1.1rem}.curves-formula{font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-md);padding:.7rem .9rem;line-height:1.5;word-break:break-word}.curves-slider-row{display:flex;flex-direction:column;gap:.4rem}.curves-slider-label{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-tertiary)}.curves-slider-value{color:var(--color-text);font-weight:600;font-variant-numeric:tabular-nums}.curves-slider-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:var(--radius-pill);background:var(--color-border);outline:none;cursor:pointer}.curves-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg);box-shadow:var(--shadow-soft);cursor:pointer}.curves-slider-row input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg);box-shadow:var(--shadow-soft);cursor:pointer}.curves-actions{display:flex;gap:.6rem;margin-top:.25rem}.curves-btn{font-family:var(--font-mono);font-size:.82rem;font-weight:500;color:var(--color-accent-contrast);background:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:.55rem 1.1rem;cursor:pointer;transition:opacity var(--transition)}.curves-btn:hover{opacity:.85}.curves-btn-ghost{color:var(--color-text-secondary);background:transparent;border-color:var(--color-border)}.curves-btn-ghost:hover{color:var(--color-text);background:var(--color-surface-hover);opacity:1}.curves-note{margin-top:2.25rem;padding-top:1.25rem;border-top:var(--rule);color:var(--color-text-tertiary);font-size:.88rem}@media (max-width: 700px){.Curves{padding:5vh 6vw 3vh}}.Bounce{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.bounce-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.75rem}.bounce-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.bounce-canvas-wrap{background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:.75rem;margin-bottom:1.5rem}.bounce-canvas{display:block;width:100%;height:auto;aspect-ratio:640 / 380;border-radius:var(--radius-md);cursor:crosshair;touch-action:none}.bounce-controls{display:flex;flex-direction:column;gap:1.1rem;max-width:480px}.bounce-slider-row{display:flex;flex-direction:column;gap:.4rem}.bounce-slider-label{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-tertiary)}.bounce-slider-value{color:var(--color-text);font-weight:600;font-variant-numeric:tabular-nums}.bounce-slider-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:var(--radius-pill);background:var(--color-border);outline:none;cursor:pointer}.bounce-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg);box-shadow:var(--shadow-soft);cursor:pointer}.bounce-slider-row input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg);box-shadow:var(--shadow-soft);cursor:pointer}.bounce-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.bounce-btn{font-family:var(--font-mono);font-size:.82rem;font-weight:500;color:var(--color-accent-contrast);background:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:.55rem 1.1rem;cursor:pointer;transition:opacity var(--transition)}.bounce-btn:hover{opacity:.85}.bounce-btn-ghost{color:var(--color-text-secondary);background:transparent;border-color:var(--color-border)}.bounce-btn-ghost:hover{color:var(--color-text);background:var(--color-surface-hover);opacity:1}.bounce-count{font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-tertiary);margin-left:auto}.bounce-note{margin-top:2.25rem;padding-top:1.25rem;border-top:var(--rule);color:var(--color-text-tertiary);font-size:.88rem}@media (max-width: 700px){.Bounce{padding:5vh 6vw 3vh}}.Deadlines{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:7vh 6vw 4vh}.deadlines-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.5rem}.deadlines-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.page-lede{color:var(--color-text-secondary);font-size:1rem;margin:0;max-width:68ch}.deadlines-updated{font-family:var(--font-mono);font-size:.82rem;color:var(--color-text-tertiary);margin:.85rem 0 0}.deadlines-status{color:var(--color-text-tertiary);font-size:.95rem}.deadlines-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.deadlines-row{display:grid;grid-template-columns:64px 1fr;gap:1.25rem;padding:1.1rem .75rem;margin:0 -.75rem;border-bottom:var(--rule);border-radius:var(--radius-sm);align-items:baseline;transition:background-color var(--transition)}.deadlines-row:hover{background:var(--color-surface-hover)}.deadlines-row:last-child{border-bottom:none}.deadlines-countdown{display:flex}.deadlines-days{font-family:var(--font-mono);font-weight:700;font-size:.95rem;color:var(--color-accent)}.deadlines-content{min-width:0}.deadlines-kind{display:inline-block;font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.15rem .5rem;border-radius:var(--radius-pill);margin-bottom:.4rem}.deadlines-kind-deadline{color:var(--color-danger);background:var(--color-danger-surface)}.deadlines-kind-conference{color:var(--color-accent);background:var(--color-accent-ring)}.deadlines-content h3{margin:0 0 .3rem;font-size:1.05rem;font-weight:600;line-height:1.4;color:var(--color-text)}.deadlines-content h3 a{color:var(--color-text);text-decoration:none}.deadlines-content h3 a:hover{color:var(--color-accent);text-decoration:underline}.deadlines-date{font-family:var(--font-mono);font-size:.88rem;color:var(--color-text-tertiary)}.deadlines-subheading{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);margin:2.5rem 0 1rem}.deadlines-tba-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem}.deadlines-tba-list a{display:inline-block;font-family:var(--font-mono);font-size:.9rem;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-pill);padding:.4rem 1rem;text-decoration:none;transition:background-color var(--transition),color var(--transition)}.deadlines-tba-list a:hover{background:var(--color-surface-hover);color:var(--color-text)}.deadlines-tba-list a:focus-visible,.deadlines-content h3 a:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring);border-radius:var(--radius-sm)}@media (max-width: 700px){.Deadlines{padding:5vh 6vw 3vh}.deadlines-row{grid-template-columns:1fr;gap:.3rem}}.Todo{width:100%;max-width:640px;margin:0 auto;padding:7vh 6vw 4vh}.todo-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.75rem}.todo-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.todo-input-row{display:flex;gap:.75rem;margin-bottom:1.75rem}.todo-input{flex:1;font-family:inherit;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:.85rem 1.1rem;box-sizing:border-box}.todo-input:focus{outline:none;border-color:var(--color-accent)}.todo-add-btn{font-family:var(--font-mono);font-size:.92rem;font-weight:600;color:var(--color-accent-contrast);background:var(--color-accent);border:none;border-radius:var(--radius-lg);padding:0 1.5rem;cursor:pointer;transition:background-color var(--transition)}.todo-add-btn:hover{background:var(--color-accent-strong)}.todo-add-btn:focus-visible,.todo-input:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.todo-empty{color:var(--color-text-tertiary);font-size:.95rem}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);overflow:hidden}.todo-item{display:flex;align-items:center;gap:.9rem;padding:.95rem 1.1rem;border-bottom:var(--rule);transition:background-color var(--transition)}.todo-item:last-child{border-bottom:none}.todo-item:hover{background:var(--color-surface-hover)}.todo-checkbox{position:relative;display:inline-flex;flex-shrink:0;cursor:pointer}.todo-checkbox input{position:absolute;opacity:0;width:22px;height:22px;margin:0;cursor:pointer}.todo-checkmark{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--color-border);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition),border-color var(--transition)}.todo-checkmark:after{content:"";width:6px;height:10px;border-right:2px solid var(--color-accent-contrast);border-bottom:2px solid var(--color-accent-contrast);transform:rotate(45deg) scale(0);transition:transform .15s ease;margin-top:-2px}.todo-checkbox input:checked~.todo-checkmark{background:var(--color-accent);border-color:var(--color-accent)}.todo-checkbox input:checked~.todo-checkmark:after{transform:rotate(45deg) scale(1)}.todo-text{flex:1;min-width:0;font-size:1rem;color:var(--color-text);word-break:break-word;cursor:text}.todo-item.is-done .todo-text{color:var(--color-text-tertiary);text-decoration:line-through}.todo-edit-input{flex:1;min-width:0;font-family:inherit;font-size:1rem;color:var(--color-text);background:var(--color-bg);border:var(--rule);border-radius:var(--radius-sm);padding:.3rem .5rem}.todo-edit-input:focus{outline:none;border-color:var(--color-accent)}.todo-delete{flex-shrink:0;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;line-height:1;color:var(--color-text-tertiary);background:none;border:none;border-radius:50%;cursor:pointer;opacity:0;transition:opacity var(--transition),color var(--transition),background-color var(--transition)}.todo-item:hover .todo-delete,.todo-delete:focus-visible{opacity:1}.todo-delete:hover{color:var(--color-danger);background:var(--color-danger-surface)}.todo-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;font-size:.88rem}.todo-count{color:var(--color-text-tertiary);font-family:var(--font-mono)}.todo-filters{display:flex;gap:.4rem}.todo-filter{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-secondary);background:none;border:var(--rule);border-radius:var(--radius-pill);padding:.3rem .85rem;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}.todo-filter:hover{background:var(--color-surface-hover)}.todo-filter.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.todo-filter:focus-visible,.todo-clear:focus-visible,.todo-delete:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.todo-checkbox input:focus-visible~.todo-checkmark{box-shadow:0 0 0 3px var(--color-accent-ring)}.todo-clear{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;text-decoration:underline}.todo-clear:hover{color:var(--color-text)}@media (max-width: 700px){.Todo{padding:5vh 6vw 3vh}}.Clock{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 35%,var(--color-surface) 0%,var(--color-bg) 70%);overflow:hidden}.clock-center{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.clock-time{font-family:var(--font-display);font-weight:600;font-size:clamp(4rem,16vw,13rem);line-height:1;color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;display:flex;align-items:baseline;gap:.6vw}.clock-seconds{font-size:.28em;font-weight:500;color:var(--color-accent);font-variant-numeric:tabular-nums;min-width:1.6ch}.clock-date{font-family:var(--font-mono);font-size:clamp(.95rem,2vw,1.3rem);letter-spacing:.04em;color:var(--color-text-tertiary);text-transform:uppercase}.clock-back,.clock-fullscreen{position:fixed;top:1.5rem;font-family:var(--font-mono);font-size:.85rem;font-weight:500;color:var(--color-text-tertiary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-pill);padding:.5rem 1.1rem;text-decoration:none;cursor:pointer;opacity:.55;transition:opacity var(--transition),color var(--transition)}.clock-back:hover,.clock-fullscreen:hover{opacity:1;color:var(--color-text)}.clock-back:focus-visible,.clock-fullscreen:focus-visible{opacity:1;outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.clock-back{left:1.5rem}.clock-fullscreen{right:1.5rem}@media (max-width: 600px){.clock-time{gap:1.5vw}}.StopwatchTimer{width:100%;max-width:640px;margin:0 auto;padding:7vh 6vw 4vh}.page-eyebrow{font-family:var(--font-mono);font-size:.87rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0 0 .6rem}.sw-header{border-bottom:var(--rule);padding-bottom:2rem;margin-bottom:1.75rem}.sw-header h1{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:600;color:var(--color-text);margin:0 0 .5rem}.page-lede{color:var(--color-text-secondary);font-size:1rem;margin:0}.sw-tabs{display:flex;gap:.6rem;margin-bottom:1.75rem}.sw-tab{font-family:var(--font-mono);font-size:.9rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:var(--rule);border-radius:var(--radius-pill);padding:.5rem 1.2rem;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition)}.sw-tab:hover{background:var(--color-surface-hover)}.sw-tab.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.sw-tab:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.sw-panel{display:flex;flex-direction:column;align-items:center;gap:1.5rem;background:var(--color-surface);border:var(--rule);border-radius:var(--radius-lg);padding:2.5rem 1.5rem}.sw-display{display:flex;align-items:baseline;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sw-main{font-size:clamp(2.5rem,10vw,4rem);font-weight:700;color:var(--color-text)}.sw-centis{font-size:clamp(1.2rem,4vw,1.8rem);font-weight:500;color:var(--color-text-tertiary)}.sw-display.is-done .sw-main{color:var(--color-danger)}.timer-done-label{margin:-.5rem 0 0;font-family:var(--font-mono);font-weight:600;color:var(--color-danger)}.sw-controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.sw-btn{font-family:var(--font-mono);font-size:.92rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface-hover);border:var(--rule);border-radius:var(--radius-lg);padding:.65rem 1.4rem;cursor:pointer;transition:background-color var(--transition),color var(--transition)}.sw-btn:hover:not(:disabled){background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}.sw-btn:disabled{opacity:.4;cursor:default}.sw-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-ring)}.sw-btn-primary{background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent)}.sw-btn-primary:hover:not(:disabled){background:var(--color-accent-strong)}.sw-laps{width:100%;list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.sw-laps li{display:flex;justify-content:space-between;padding:.55rem .25rem;border-bottom:var(--rule);font-family:var(--font-mono);font-size:.92rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.sw-laps li:last-child{border-bottom:none}.timer-setup{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%}.timer-inputs{display:flex;align-items:center;gap:.6rem;font-family:var(--font-mono);color:var(--color-text-secondary)}.timer-inputs input{width:4.5rem;font-family:inherit;font-size:1.3rem;font-weight:700;text-align:center;color:var(--color-text);background:var(--color-bg);border:var(--rule);border-radius:var(--radius-sm);padding:.5rem 0;font-variant-numeric:tabular-nums}.timer-inputs input:focus{outline:none;border-color:var(--color-accent)}.timer-presets{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}@media (max-width: 700px){.StopwatchTimer{padding:5vh 6vw 3vh}}
