:root{color-scheme:light;--paper: #f4efe5;--paper-deep: #ece4d5;--card: #fffdf9;--ink: #1d1a16;--ink-soft: #4c463d;--muted: #8b8275;--line: #e7dfd1;--hairline: rgba(29, 26, 22, .07);--orange: #c75d2b;--orange-dark: #a8481c;--orange-soft: rgba(199, 93, 43, .1);--blue: #5d6b7a;--blue-dark: #45525f;--danger: #b23b2e;--content-max: 860px;--shadow-sm: 0 1px 2px rgba(45, 36, 24, .05), 0 2px 6px rgba(45, 36, 24, .04);--shadow: 0 4px 12px rgba(57, 45, 31, .07), 0 16px 36px rgba(57, 45, 31, .08);--shadow-lg: 0 10px 24px rgba(45, 36, 24, .12), 0 28px 56px rgba(45, 36, 24, .14);--r-xs: 3px;--r-sm: 5px;--r-md: 7px;--r-lg: 10px;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box}[hidden]{display:none!important}html{min-height:100%;background:var(--paper);scroll-behavior:smooth;touch-action:manipulation;-webkit-text-size-adjust:100%}body{min-height:100vh;margin:0;color:var(--ink);background:radial-gradient(110% 60% at 18% -8%,rgba(255,255,255,.65),transparent 60%),var(--paper);background-attachment:fixed;font-family:Hiragino Kaku Gothic ProN,Yu Gothic UI,Yu Gothic,system-ui,sans-serif;font-feature-settings:"palt" 1;line-height:1.72;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}::selection{background:var(--orange-soft)}.page-shell{width:min(100%,var(--content-max));margin:0 auto;padding:76px 16px 120px}.page-shell.review-page{padding-bottom:158px}.page-shell.wide-page{width:min(100%,1280px)}.eyebrow{margin:0 0 .35rem;color:var(--orange-dark);font-size:.68rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}h1,h2,h3{line-height:1.32;letter-spacing:-.005em}h1{margin:0;font-size:clamp(1.5rem,5.2vw,2.25rem);font-weight:850;letter-spacing:-.02em}h2{margin:2.6rem 0 .8rem;font-size:1.12rem;font-weight:800}p{margin:.7rem 0}.muted{color:var(--muted)}.small{font-size:.82rem}.surface{border:1px solid var(--hairline);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:2.6rem 4px .9rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.section-heading h2{margin:0}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--line);border-radius:var(--r-md);padding:.65rem 1.2rem;color:var(--ink);background:var(--card);font-weight:700;letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:transform .12s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}.button:active{transform:scale(.985)}.button.primary{border-color:transparent;color:#fff;background:var(--orange);box-shadow:0 1px 2px #a8481c40,0 6px 16px #a8481c2e}.button.primary:hover{background:var(--orange-dark)}.button.full{width:100%}.header-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.simulator-link{min-height:44px;padding-inline:.95rem;color:var(--blue-dark);background:var(--paper-deep);border-color:transparent;font-size:.82rem}.chip{display:inline-flex;align-items:center;border-radius:var(--r-xs);padding:.2rem .55rem;color:var(--ink-soft);background:var(--paper-deep);font-size:.74rem;font-weight:700;letter-spacing:.02em;text-decoration:none;transition:background .15s var(--ease)}a.chip:active{background:var(--line)}.prose{white-space:pre-wrap;overflow-wrap:anywhere}.prose-panel{border-left:3px solid var(--orange);padding:.3rem 0 .3rem 1rem}.markdown-body{overflow-wrap:anywhere}.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5{margin:1.25rem 0 .45rem}.markdown-body p,.markdown-body ul{margin:.55rem 0}.markdown-body ul{padding-left:1.2rem}.markdown-body code{border-radius:6px;padding:.08rem .3rem;background:var(--paper-deep);color:#5c554c}.markdown-body a{color:var(--orange-dark);font-weight:800;text-underline-offset:2px}.markdown-body .md-concept{border-radius:6px;padding:.04rem .3rem;color:var(--blue-dark);background:#5d6b7a1f;font-style:normal;font-weight:800}.markdown-body .md-hand{--md-tile-width: clamp(20px, 5vw, 30px);display:inline-flex;max-width:100%;align-items:center;gap:.16em;vertical-align:-.38em;white-space:nowrap}.markdown-body .md-tile-group{display:inline-flex;min-width:0;flex-wrap:nowrap;align-items:center;gap:1px}.markdown-body .md-tile{display:inline-block;width:var(--md-tile-width);min-width:0;height:auto;aspect-ratio:66 / 90;object-fit:contain}.markdown-body .md-dora{display:inline-flex;align-items:center;gap:.12em;margin-left:.22em;color:var(--muted);font-size:.76em;font-weight:800}.markdown-body .md-dora .md-tile{width:calc(var(--md-tile-width) * .9)}.topbar{position:fixed;z-index:50;top:0;left:0;right:0;width:100%;height:56px;border-bottom:1px solid var(--hairline);background:#f4efe5d1;backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px)}.topbar-inner{width:min(100%,var(--content-max));height:100%;margin:0 auto;padding:0 8px;display:grid;grid-template-columns:46px 1fr 46px;align-items:center}.topbar-title{min-width:0;overflow:hidden;margin:0;font-size:.9rem;font-weight:800;letter-spacing:.04em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.icon-button{display:inline-grid;width:42px;height:42px;place-items:center;border:0;border-radius:50%;color:var(--ink);background:transparent;font-size:1.4rem;text-decoration:none;cursor:pointer;transition:background .15s var(--ease)}.icon-button:active{background:#1d1a1614}.fab{position:fixed;z-index:65;right:max(18px,calc((100vw - var(--content-max)) / 2 + 18px));bottom:calc(20px + env(safe-area-inset-bottom));display:grid;width:56px;height:56px;place-items:center;border:0;border-radius:50%;color:#fff;background:var(--ink);box-shadow:0 8px 22px #1d1a1652,inset 0 1px #ffffff1f;font-size:1.28rem;cursor:pointer;transition:transform .14s var(--ease)}.fab:active{transform:scale(.92)}.has-rating-bar .fab{bottom:calc(98px + env(safe-area-inset-bottom))}.menu-sheet{position:fixed;z-index:64;right:max(18px,calc((100vw - var(--content-max)) / 2 + 18px));bottom:calc(86px + env(safe-area-inset-bottom));width:min(264px,calc(100vw - 36px));max-height:calc(100vh - 112px - env(safe-area-inset-bottom));max-height:calc(100dvh - 112px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--hairline);border-radius:var(--r-lg);padding:.5rem;background:var(--card);box-shadow:var(--shadow-lg);animation:sheet-in .2s var(--ease)}@keyframes sheet-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.has-rating-bar .menu-sheet{bottom:calc(164px + env(safe-area-inset-bottom));max-height:calc(100vh - 190px - env(safe-area-inset-bottom));max-height:calc(100dvh - 190px - env(safe-area-inset-bottom))}.menu-sheet[hidden]{display:none}.menu-sheet a{display:block;border-radius:var(--r-sm);padding:.72rem .85rem;font-weight:750;text-decoration:none}.menu-sheet a:active{background:var(--paper)}@media(max-width:520px){.menu-sheet{left:12px;right:12px;width:auto;padding:.45rem}.menu-sheet a{padding:.62rem .75rem}}.tile-tray{width:100%;overflow:hidden;border-radius:var(--r-md);align-content:center;padding:clamp(8px,2vw,14px);background:linear-gradient(158deg,rgba(255,255,255,.7),rgba(255,255,255,.06) 46%,transparent 72%),var(--paper-deep);box-shadow:inset 0 0 0 1px #76654e1f,0 2px 8px #4d3d2a0f}.hand-visual{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:clamp(5px,1.5vw,10px);width:100%}.tile-line{display:grid;grid-template-columns:repeat(var(--tile-count),minmax(0,66px));justify-content:center;width:100%;gap:clamp(0px,.15vw,2px)}.tile-line .tile{display:block;width:100%;min-width:0;height:auto;aspect-ratio:66 / 90;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(60,47,30,.12))}.hand{--hand-tile-width: clamp(32px, 6vw, 48px)}.hand-meta{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:.5rem}.handtext{min-width:0;overflow-wrap:anywhere;color:var(--muted);font-size:clamp(.72rem,2.7vw,.86rem);letter-spacing:.02em;user-select:all}.dora-group{flex:none;display:flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.73rem;font-weight:700}.dora-group .tile{width:clamp(25px,8vw,38px);height:auto}.dora-side{flex:none;display:grid;align-content:center;justify-items:center;gap:3px;border-radius:var(--r-sm);padding:4px 5px;background:#fffdf899;box-shadow:inset 0 0 0 1px #76654e24;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.06em;line-height:1}.dora-tiles{display:flex;gap:2px}.dora-side .tile{display:block;width:clamp(10px,5vw,38px);height:auto;aspect-ratio:66 / 90;object-fit:contain}.home-card{transition:transform .14s var(--ease),box-shadow .18s var(--ease)}a.home-card:active{transform:scale(.99)}.problem-list{display:grid;gap:.5rem}.problem-row{display:block;border:1px solid var(--hairline);border-radius:var(--r-md);padding:8px 9px;background:var(--card);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .14s var(--ease),box-shadow .18s var(--ease)}.problem-row-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;margin-bottom:.35rem}.problem-no{border-radius:var(--r-xs);padding:.14rem .45rem;background:var(--paper-deep);color:var(--ink-soft);font-size:.67rem;font-weight:850;letter-spacing:.04em;line-height:1.4;font-variant-numeric:tabular-nums}.problem-theme{overflow:hidden;color:var(--ink);font-size:.8rem;font-weight:800;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.problem-status{color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.35;white-space:nowrap}.problem-row:active{transform:scale(.99);box-shadow:var(--shadow)}@media(hover:hover){.problem-row:hover{transform:translateY(-2px);box-shadow:var(--shadow)}}.problem-row-meta{display:flex;justify-content:space-between;gap:.7rem;margin-top:.45rem;color:var(--muted);font-size:.75rem}.rating-bar{position:fixed;z-index:60;inset:auto 0 0;border-top:1px solid var(--hairline);padding:9px 9px calc(9px + env(safe-area-inset-bottom));background:#f4efe5eb;backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px)}.rating-grid{width:min(100%,var(--content-max));margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.rating{min-width:0;min-height:54px;border:0;border-radius:var(--r-sm);padding:.25rem;color:#fff;background:var(--blue);font-size:clamp(.68rem,3vw,.86rem);font-weight:800;letter-spacing:.03em;cursor:pointer;transition:transform .12s var(--ease),filter .15s var(--ease)}.rating:active{transform:scale(.96)}.rating:nth-child(n+3){background:var(--orange)}.rating.selected{outline:2px solid var(--ink);outline-offset:2px}.inline-rating-panel{display:grid;gap:.45rem;border-top:1px solid var(--line);margin-top:.8rem;padding-top:.8rem}.inline-rating-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.inline-rating-button{min-height:44px;border-radius:var(--r-sm);font-size:.76rem}.inline-rating-button:disabled{opacity:.58;cursor:default}.inline-rating-button.selected{opacity:1}.inline-rating-status{margin:0}.review-state{display:grid;gap:.7rem;margin:1rem 0;padding:.9rem 1rem;font-size:.78rem}.review-state-title{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.review-state-title span{color:var(--muted);font-weight:800}.review-state-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.review-state-chip{display:grid;gap:.14rem;border-radius:var(--r-sm);padding:.5rem .55rem;background:var(--paper)}.review-state-chip small{color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.03em;line-height:1.2}.review-state-chip strong{color:var(--ink);font-size:.8rem;line-height:1.25;overflow-wrap:anywhere}.review-state-chip.emphasis{background:var(--orange-soft)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .78rem;color:var(--ink);background:var(--card);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}textarea{min-height:8rem;resize:vertical}label{display:block;margin-top:.85rem;color:var(--ink-soft);font-size:.82rem;font-weight:750}@media(max-width:520px){.page-shell{padding-inline:11px}.surface{border-radius:var(--r-md)}.tile-tray{border-radius:var(--r-sm);padding-inline:5px}.review-state-values{grid-template-columns:repeat(2,minmax(0,1fr))}}
