#root{min-height:100vh}:root{color:#1e211e;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1e211e;--muted:#646b61;--paper:#f8f7ef;--panel:#fffdf5;--line:#d6d2c3;--accent:#c4492d;--accent-2:#1f7a68;--accent-3:#285c8c;--shadow:0 18px 45px #2c271b1f;background:#eef0e9;font-family:Avenir Next,Avenir,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,textarea,select{font:inherit}button{cursor:pointer}code{color:#2c332d;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.55}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100dvh;display:grid}.lesson-rail{border-right:1px solid var(--line);background:linear-gradient(#fffdf5f0,#eef0e9f0),repeating-linear-gradient(90deg,#1e211e0d 0 1px,#0000 1px 24px);flex-direction:column;gap:28px;height:100dvh;padding:26px 18px;display:flex;position:sticky;top:0}.brand-mark{gap:4px;display:grid}.brand-mark span,.eyebrow,.alg-chip span,.learning-panel>span,.execution-row span,.memo-card span,.execution-list span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:800}.brand-mark strong{font-size:1.42rem}.mode-tabs{gap:10px;display:grid}.mode-tabs button,.drill,.execution-list button{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fffdf5b8;transition:border-color .16s,background-color .16s,transform .16s}.mode-tabs button{border-radius:7px;padding:13px 14px}.mode-tabs button:hover,.mode-tabs .active,.drill:hover,.drill.active,.execution-list button:hover,.execution-list button.active{border-color:var(--accent);background:#fff8e8}.mode-tabs button:hover,.drill:hover,.execution-list button:hover{transform:translateY(-1px)}.source-panel{border:1px solid var(--line);background:#fffdf5b8;border-radius:8px;margin-top:auto;padding:16px}.source-panel h2,.learning-panel h2{margin:0;font-size:1rem}.source-panel dl{gap:10px;margin:16px 0 0;display:grid}.source-panel div{justify-content:space-between;gap:12px;display:flex}.source-panel dt{color:var(--muted)}.source-panel dd{margin:0;font-weight:800}.workspace{grid-template-rows:auto auto 1fr;gap:18px;padding:28px;display:grid}.workspace-header{justify-content:space-between;align-items:start;gap:24px;display:flex}.workspace-header h1{max-width:820px;margin:4px 0 8px;font-size:clamp(2rem,4vw,4.7rem);line-height:.98}.workspace-header p{max-width:680px;color:var(--muted);margin:0;font-size:1.06rem}.alg-chip{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:8px;min-width:112px;padding:14px}.alg-chip strong{color:var(--accent);margin-top:2px;font-size:2.4rem;display:block}.cube-stage{border:1px solid var(--line);min-height:360px;box-shadow:var(--shadow);background:radial-gradient(circle at 18% 12%,#c4492d1f,#0000 32%),linear-gradient(135deg,#fbfaf2,#e9ece2);border-radius:8px;grid-template-columns:minmax(280px,.9fr) minmax(260px,1.1fr);gap:16px;display:grid;overflow:hidden}.cube-frame{min-height:360px;padding:12px;display:grid}twisty-player{width:100%;min-height:340px}.current-alg{border-left:1px solid var(--line);align-content:center;gap:16px;padding:26px;display:grid}.current-alg span{color:var(--accent);font-weight:900}.current-alg code{font-size:clamp(1rem,2vw,1.45rem);display:block}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.trainer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.learning-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:16px;padding:20px;display:grid}.learning-panel.wide{grid-column:1/-1}.concept-list{grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.concept-list li{border:1px solid var(--line);min-height:150px;color:var(--muted);background:#fbf4df;border-radius:7px;padding:14px}.concept-list strong{color:var(--ink);margin-bottom:8px;display:block}.alg-card code{display:block}.roadmap-grid,.protocol-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.roadmap-step,.protocol-grid section{border:1px solid var(--line);background:#fbf4df;border-radius:7px;align-content:start;gap:8px;min-height:150px;padding:14px;display:grid}.roadmap-step h3,.protocol-grid h3{color:var(--ink);margin:0;font-size:1rem}.roadmap-step p,.protocol-grid p,.learning-panel p{color:var(--muted);margin:0;line-height:1.5}.detail-list,.check-list{color:var(--muted);gap:10px;margin:0;padding-left:1.25rem;line-height:1.5;display:grid}.detail-list li,.check-list li{padding-left:4px}.check-list{padding-left:0;list-style:none}.check-list li{border:1px solid var(--line);background:#fff8e8;border-radius:7px;padding:10px 10px 10px 36px;position:relative}.check-list li:before{content:"";border:2px solid var(--accent-2);border-radius:3px;width:11px;height:11px;position:absolute;top:15px;left:12px}.letter-table{gap:8px;display:grid}.letter-schemes{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.letter-scheme-panel{min-width:0}.letter-table-head,.letter-row{grid-template-columns:46px 64px minmax(90px,1fr) minmax(90px,1fr);align-items:center;gap:10px;display:grid}.letter-table-head{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:0 10px;font-size:.72rem;font-weight:900}.letter-row{border:1px solid var(--line);min-height:48px;color:var(--muted);background:#f7f1de;border-radius:6px;padding:9px 10px}.letter-row strong{color:var(--ink);font-size:1.18rem}.letter-row code{color:#2c332d;overflow-wrap:anywhere;font-size:.92rem;display:block}.letter-row.buffer{border-color:var(--accent);background:#ffe5d7}.letter-cube-panel{overflow:hidden}.letter-cube-panel p{max-width:760px;color:var(--muted);margin:8px 0 0}.buffer-key{border:1px solid var(--accent);color:var(--accent);background:#ffe5d7;border-radius:999px;align-self:start;padding:8px 10px;font-size:.78rem;font-weight:900}.scheme-net{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(100%,820px);margin:0 auto;display:grid}.cube-face{background:#2f332f;border:2px solid #2f332f;border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px;display:grid}.cube-face span{color:#1e211e;text-align:center;border-radius:4px;place-items:center;min-height:46px;display:grid}.cube-face strong{font-size:clamp(1rem,2vw,1.55rem);line-height:1}.cube-face small{color:#1e211e9e;margin-top:2px;font-size:.58rem;font-weight:800}.cube-face .buffer{outline:3px solid var(--accent);outline-offset:-3px}.face-U span{background:#f7f5ee}.face-D span{background:#f3d640}.face-F span{background:#2fa65a}.face-B span{color:#f8f7ef;background:#2d62b7}.face-B small{color:#f8f7efb8}.face-R span{color:#fff8e8;background:#d94330}.face-R small{color:#fff8e8b8}.face-L span{background:#ee962d}.drill-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.drill{border-radius:7px;gap:10px;min-height:96px;padding:14px;display:grid}.drill strong{color:var(--accent-3);font-size:1.25rem}.guided-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guided-intro code{border:1px solid var(--line);background:#fff8e8;border-radius:7px;padding:14px;font-size:1rem;display:block}.memo-line,.step-count{color:var(--accent-3);overflow-wrap:anywhere;font-size:clamp(1.4rem,3vw,2rem);line-height:1.2;display:block}.guided-execution-list{gap:10px;max-height:560px;padding-right:4px;display:grid;overflow:auto}.guided-execution-list button{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fffdf5b8;border-radius:7px;grid-template-columns:42px 78px 42px minmax(0,1fr);align-items:start;gap:12px;padding:12px;display:grid}.guided-execution-list button.active{border-color:var(--accent);background:#fff8e8}.step-number{color:#fff8e8;background:var(--accent);border-radius:999px;place-items:center;width:32px;height:32px;font-weight:900;display:grid}.execution-card{grid-column:span 1}.execution-row{border-bottom:1px solid var(--line);gap:6px;padding-bottom:12px;display:grid}.execution-row:last-child{border-bottom:0;padding-bottom:0}.panel-heading,.memo-card>div{justify-content:space-between;align-items:center;gap:16px;display:flex}select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffaf0;border-radius:7px}select{max-width:180px;padding:10px}textarea{resize:vertical;min-height:96px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;line-height:1.45}.memo-card p{color:var(--accent-3);overflow-wrap:anywhere;margin:0;font-size:1.65rem;font-weight:900}.parity-panel strong{font-size:1.8rem}.parity-on{color:var(--accent)}.parity-off{color:var(--accent-2)}.execution-list{gap:8px;max-height:380px;padding-right:4px;display:grid;overflow:auto}.execution-list button{border-radius:7px;grid-template-columns:70px 42px minmax(0,1fr);align-items:start;gap:12px;padding:12px;display:grid}.execution-list strong{color:var(--accent);font-size:1.18rem}.execution-parts{grid-template-columns:minmax(96px,.7fr) minmax(180px,1.4fr) minmax(96px,.7fr);gap:8px;display:grid}.part{border:1px solid var(--line);background:#fffdf5;border-radius:6px;gap:4px;min-height:58px;padding:8px;display:grid}.part em{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-style:normal;font-weight:900}.part code{color:var(--ink);font-size:.86rem}.part.setup,.part.undo{background:#fff4cf;border-color:#d9bd72}.part.swap{background:#e8f4ee;border-color:#1f7a6859}.error-text{color:var(--accent);margin:0;font-weight:800}@media (width<=1120px){.app-shell{grid-template-columns:1fr}.lesson-rail{height:auto;position:static}.mode-tabs{grid-template-columns:repeat(3,1fr)}.source-panel{margin-top:0}.cube-stage,.content-grid,.guided-grid,.letter-schemes,.trainer-grid{grid-template-columns:1fr}.current-alg{border-top:1px solid var(--line);border-left:0}.concept-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.workspace{padding:18px 14px}.workspace-header{display:grid}.mode-tabs,.concept-list,.scheme-net{grid-template-columns:1fr}.letter-table-head{display:none}.letter-row{grid-template-columns:48px 1fr}.letter-row code{grid-column:1/-1}.scheme-net>div:empty{display:none}.cube-face span{min-height:54px}.panel-heading,.memo-card>div{flex-direction:column;align-items:stretch}select{max-width:none}.execution-list button,.guided-execution-list button,.execution-parts{grid-template-columns:1fr}}.lang-switcher{gap:8px;margin-top:4px;display:flex}.lang-switcher button{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:4px;padding:6px 12px;font-size:.8rem;font-weight:700;transition:all .16s}.lang-switcher button:hover{border-color:var(--accent);color:var(--ink)}.lang-switcher button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cube-face span.clickable-sticker{cursor:pointer;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s,filter .2s,outline-color .2s;position:relative}.cube-face span.clickable-sticker:hover{filter:brightness(1.08);z-index:10;transform:scale(1.15);box-shadow:0 6px 16px #00000040}.cube-face span.clickable-sticker.selected{outline:3px solid var(--accent-3);outline-offset:-3px;filter:brightness(1.08);z-index:10;transform:scale(1.15);box-shadow:0 6px 16px #00000040}.cube-interaction-layout{grid-template-columns:1.3fr .7fr;align-items:start;gap:24px;width:100%;margin-top:18px;display:grid}@media (width<=980px){.cube-interaction-layout{grid-template-columns:1fr;gap:20px}}.sticker-details-container{flex-direction:column;height:100%;display:flex}.sticker-details-placeholder{border:1px dashed var(--line);color:var(--muted);text-align:center;background:#fffdf566;border-radius:8px;flex-grow:1;justify-content:center;align-items:center;min-height:140px;padding:24px 16px;font-size:.95rem;display:flex}.sticker-details-placeholder p{flex-direction:column;align-items:center;gap:8px;margin:0;display:flex}.sticker-details-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf5;border-radius:8px;gap:16px;padding:20px;animation:.25s cubic-bezier(.16,1,.3,1) forwards slideUpDetails;display:grid;position:relative}@keyframes slideUpDetails{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.details-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.sticker-info{flex-direction:column;gap:6px;display:flex}.sticker-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:800}.sticker-badge-row{align-items:center;gap:8px;display:flex}.sticker-letter-bubble{background:var(--accent-3);color:#f8f7ef;border-radius:6px;place-items:center;min-width:36px;height:36px;padding:0 10px;font-size:1.3rem;font-weight:900;display:grid;box-shadow:0 2px 5px #285c8c33}.sticker-letter-bubble.face-U{color:#1e211e;border:1px solid var(--line);background:#f7f5ee;box-shadow:0 2px 5px #0000000d}.sticker-letter-bubble.face-D{color:#1e211e;background:#f3d640;box-shadow:0 2px 5px #f3d64040}.sticker-letter-bubble.face-F{color:#fffdf5;background:#2fa65a;box-shadow:0 2px 5px #2fa65a40}.sticker-letter-bubble.face-B{color:#f8f7ef;background:#2d62b7;box-shadow:0 2px 5px #2d62b740}.sticker-letter-bubble.face-R{color:#fff8e8;background:#d94330;box-shadow:0 2px 5px #d9433040}.sticker-letter-bubble.face-L{color:#1e211e;background:#ee962d;box-shadow:0 2px 5px #ee962d40}.sticker-id-pill{color:var(--ink);background:#1e211e14;border-radius:4px;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem;font-weight:700}.piece-type-pill{text-transform:uppercase;letter-spacing:.06em;border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:800}.piece-type-pill.edge{color:var(--accent-2);background:#e8f4ee;border:1px solid #1f7a6840}.piece-type-pill.corner{color:var(--accent);background:#ffe5d7;border:1px solid #c4492d40}.close-details-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:1.8rem;line-height:1;transition:color .15s,background-color .15s,transform .15s}.close-details-btn:hover{color:var(--accent);background-color:#c4492d14;transform:scale(1.1)}.details-body{grid-template-columns:1fr;gap:10px;display:grid}.move-card{background:#fff4cf;border:1px solid #d9bd72;border-radius:6px;flex-direction:column;gap:8px;padding:14px;display:flex;box-shadow:inset 0 1px 2px #d9bd721a}.move-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:800}.move-code{color:var(--ink);background:#fffdf5;border:1px solid #d9bd7266;border-radius:4px;align-items:center;min-height:38px;padding:10px;font-size:1.1rem;font-weight:700;display:flex;box-shadow:0 1px 3px #00000005}
