:root{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif;color:#273d32;background:#f5f2e9;font-synthesis:none;--green: #416a54;--muted: #637266;--line: #dcded0;font-size:22px;color-scheme:light}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;min-height:60px;background:transparent;border-radius:16px}button:focus-visible,a:focus-visible{outline:3px solid #9b681e;outline-offset:4px}button:disabled{opacity:.4;cursor:default}h1,h2,h3,p{margin:0}h2{font-size:1.18rem;letter-spacing:-.04em}h3{font-size:1rem}small{font-size:.78rem}p{line-height:1.65;word-break:keep-all}svg{flex-shrink:0}button svg{pointer-events:none}.shell{max-width:800px;margin:auto;padding:0 24px 40px}.header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:calc(24px + env(safe-area-inset-top)) 0 22px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-height:60px;padding:0;letter-spacing:-1.7px;font-size:32px;font-family:inherit;font-weight:600}.brand svg{color:var(--green)}.nav{display:flex;gap:8px}.nav button{font-size:19px;padding:0 14px;background:#e9ebdf}.intro{padding:34px 0 28px}.eyebrow{font-size:17px;letter-spacing:.04em;color:var(--muted);margin-bottom:12px}.intro h1{font-size:clamp(28px,5vw,38px);font-weight:650;letter-spacing:-1.4px;line-height:1.4}.intro p{color:var(--muted);margin-top:12px;font-size:20px}.resume{display:flex;align-items:center;gap:16px;background:var(--green);color:#fffdf5;padding:20px;width:100%;text-align:left;margin-bottom:30px;border:1px solid #416a54;box-shadow:0 6px 12px #244d3510}.resume svg{width:62px;color:var(--green);background:#fffdf7;border-radius:12px}.resume small{display:block;opacity:.85;margin-bottom:6px}.resume strong{display:block;font-size:24px}.resume .arrow{margin-left:auto;font-size:30px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;margin:4px 0 18px}.section-heading span{color:var(--muted);font-size:17px}.games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.game-card{background:#fffcf5;border:1px solid #dfdfd0;box-shadow:0 3px #e6e7da;min-height:208px;padding:20px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;transition:transform .15s,background .15s}.game-card:hover{background:#fffef9;transform:translateY(-2px)}.game-card .art{width:74px;height:74px;color:#56765c;margin-bottom:12px}.game-card strong{font-size:24px;letter-spacing:-.06em;word-break:keep-all;line-height:1.4}.game-card .detail{font-size:17px;color:var(--muted);margin:6px 0 16px;line-height:1.5;word-break:keep-all}.badge{font-size:16px;color:#536b52;display:flex;align-items:center;gap:5px;margin-top:auto}.badge:before{content:"";width:5px;height:5px;background:#b1bca4;border-radius:50%}.badge.done:before{background:#cb9942}.copyright{margin-top:20px;font-size:14px}.footer{border-top:1px solid var(--line);margin-top:32px;padding-top:24px;text-align:center;color:var(--muted);font-size:17px;line-height:1.7}.offline{font-size:16px;margin-top:8px}.offline button{font-size:17px;text-decoration:underline;min-height:48px}.page-title{display:flex;align-items:center;gap:12px;padding:24px 0}.back{background:#e9ebdf;padding:0 18px}.quiet{color:var(--muted)}.stats{display:flex;gap:12px;margin:0 0 28px}.stat{flex:1;background:#e9eddf;border-radius:20px;padding:20px;text-align:center}.stat strong{display:block;font-size:34px;margin-bottom:6px}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.month-nav button{width:60px;background:#e9ebdf}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{text-align:center;font-size:16px;color:var(--muted);padding:12px 0}.day{min-height:70px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:2px;font-size:16px;border:1px solid transparent;border-radius:12px}.day.today{border-color:#9dab94}.day.has-record{background:#e6ecdc;color:#477253}.day svg{width:30px;height:30px}.day span{height:30px}.record-list{margin-top:24px;display:grid;gap:12px}.record-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:14px 0;min-height:72px}.record-row strong{font-size:22px}.record-label,.record-entry{display:flex;align-items:center;gap:10px}.record-icon{display:inline-flex;flex:0 0 40px;color:var(--green)}.record-icon svg{width:40px;height:40px}.record-row>span:last-child{flex-shrink:0}.record-row small{display:block;margin-top:5px;color:var(--muted)}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}.toggle{min-width:92px;background:#e1e5d9;font-size:20px}.toggle[aria-checked=true]{background:var(--green);color:#fff}.settings-note{margin:26px 0;font-size:20px;color:var(--muted)}.play{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);display:flex;flex-direction:column}.playbar{display:flex;align-items:center;justify-content:space-between;gap:8px;max-width:800px;width:100%;margin:auto;padding:6px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.playbar button{font-size:20px;padding:0 14px;background:#e8ecdf;min-height:60px}.playbar strong{font-size:18px;font-weight:500}.frame-wrap{flex:1;position:relative;min-height:0;overflow:hidden}.frame-wrap iframe{display:block;border:0;width:100%;height:100%;background:#f4f1ea}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:#f5f2e9;text-align:center;padding:24px;z-index:1}.loading p{font-size:22px}.loading svg{color:var(--green)}dialog{border:1px solid var(--line);border-radius:24px;padding:28px;max-width:460px;width:calc(100% - 32px);background:#fffcf5;color:#273d32;max-height:85dvh;overflow:auto;box-shadow:0 20px 90px #1b372930}dialog::backdrop{background:#1b302b66}dialog h2{margin-bottom:14px}dialog p{font-size:20px;margin-bottom:16px}.dialog-actions{display:grid;gap:10px;margin-top:20px}.dialog-actions button{background:#e9eddf;padding:12px 16px;text-align:left}.dialog-actions .primary{background:var(--green);color:#fff}.dialog-actions .cancel{text-align:center;background:transparent}.save-warning{position:fixed;bottom:12px;left:12px;right:12px;z-index:20;max-width:680px;margin:auto;background:#fff0c9;border:2px solid #a78136;padding:14px;border-radius:16px;font-size:18px}.save-warning button{font-size:18px;text-decoration:underline;min-height:48px}.hidden{display:none!important}.status{min-height:24px}.mode-label{font-size:16px}.empty{padding:24px 0;color:var(--muted);font-size:20px}.primary-button{background:var(--green);color:#fff;padding:12px 20px;width:100%}.date-detail{margin-top:24px;padding:20px;background:#e9eddf;border-radius:18px}.date-detail p{font-size:19px}.total-title{margin-top:32px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(min-width:720px){.shell{padding:0 40px 48px}.games{gap:20px}.game-card{min-height:220px}.game-card .art{width:86px;height:86px}.intro{padding:42px 0 36px}.day{min-height:86px;font-size:20px}.day svg{width:36px;height:36px}}@media(max-width:380px){.shell{padding-left:16px;padding-right:16px}.header{gap:6px}.brand{font-size:28px}.brand svg{width:28px}.nav{gap:5px}.nav button{font-size:18px;padding:0 10px}.games{gap:10px}.game-card{padding:15px}.game-card strong{font-size:22px}.game-card .detail{font-size:16px}.day{min-height:64px}}@media(max-width:310px){.games{grid-template-columns:1fr}.header{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{transition:none!important;animation:none!important}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);max-width:calc(100vw - 24px);padding:14px 20px;border-radius:14px;background:#2f3b34;color:#fff;font-size:20px;line-height:1.35;text-align:center;word-break:keep-all;overflow-wrap:break-word;text-wrap:balance;box-shadow:0 8px 24px #00000038;z-index:50}
