:root{--ink:#1A1130;--ink2:#241942;--ink3:#30224f;--copper:#B8832A;--copper-lt:#D9AE54;--copper-dp:#9a6d1f;--ivory:#FAF6EE;--cream:#F1ECE1;--muted:#6B6070;--muted2:#938b9c;--line:rgba(30,21,53,.085);--line2:rgba(30,21,53,.045);--ok:#3fa46a;--serif:"Shippori Mincho",serif;--sans:"Zen Kaku Gothic New",sans-serif;--shadow:0 1px 2px rgba(30,21,53,.05),0 6px 16px rgba(30,21,53,.05);--shadow-lg:0 2px 8px rgba(30,21,53,.06),0 20px 44px rgba(30,21,53,.13);--glow:0 0 0 1px rgba(184,131,42,.14),0 10px 30px rgba(184,131,42,.2);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--ease:cubic-bezier(.22,.61,.36,1);--spring:cubic-bezier(.34,1.4,.64,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.7;letter-spacing:.01em;background:radial-gradient(1100px 560px at 82% -8%,rgba(184,131,42,.06),transparent 60%),radial-gradient(820px 480px at -8% 8%,rgba(120,86,200,.045),transparent 55%),var(--ivory);background-attachment:fixed;font-feature-settings:"palt" 1,"kern" 1;text-rendering:optimizeLegibility}::selection{background:var(--copper);color:#fff}.serif{font-family:var(--serif);letter-spacing:-.01em}.top h1,h1,h2{letter-spacing:-.015em}a{color:inherit}.wrap{max-width:460px;padding:48px 20px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.main,.wrap{margin:0 auto}.main{max-width:1020px;padding:clamp(22px,3vw,40px)}.card{background:linear-gradient(180deg,rgba(255,255,255,.92),#fff);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow);transition:box-shadow .28s var(--ease),transform .28s var(--ease)}.card:hover{box-shadow:var(--shadow-lg)}.eyebrow{font-size:.66rem;letter-spacing:.16em;color:var(--copper);font-weight:700;text-transform:uppercase;margin-bottom:10px}.brand{font-family:var(--serif);font-weight:800;font-size:1.15rem;color:var(--ink);line-height:1.45}.brand small{display:block;font-size:.6rem;color:var(--copper);letter-spacing:.22em;margin-top:6px;font-weight:700}.top h1{font-family:var(--serif);font-size:clamp(1.4rem,3vw,1.95rem);font-weight:800}.top .sub{color:var(--muted);font-size:.9rem;margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(180deg,var(--copper-lt),var(--copper));color:#fff;border:none;border-radius:11px;padding:13px 20px;font-family:var(--sans);font-weight:700;font-size:.92rem;cursor:pointer;text-decoration:none;box-shadow:0 1px 2px rgba(154,109,31,.3),inset 0 1px 0 rgba(255,255,255,.28);transition:transform .2s var(--spring),box-shadow .2s var(--ease),filter .2s var(--ease);width:100%}.btn:hover{filter:brightness(1.05) saturate(1.05);transform:translateY(-1.5px);box-shadow:var(--glow),inset 0 1px 0 rgba(255,255,255,.35)}.btn:active{transform:translateY(0) scale(.97)}.btn:disabled{opacity:.6;cursor:default;transform:none}.btn.ghost{background:transparent;color:var(--copper);border:1.5px solid var(--copper);box-shadow:none}.btn.ghost:hover{background:rgba(184,131,42,.07)}.field{margin-bottom:14px;text-align:left}.field label{display:block;font-size:.78rem;color:var(--muted);font-weight:700;margin-bottom:6px}.field input{width:100%;border:1px solid var(--line);border-radius:11px;padding:13px 14px;font-family:var(--sans);font-size:.95rem;color:var(--ink)}.field input:focus{outline:none;border-color:var(--copper);box-shadow:0 0 0 3px rgba(184,131,42,.12)}.phero{background:radial-gradient(120% 130% at 100% 0,rgba(217,174,84,.22),transparent 46%),radial-gradient(110% 120% at -5% 105%,rgba(124,92,210,.16),transparent 52%),linear-gradient(140deg,var(--ink),var(--ink2) 55%,var(--ink3));color:var(--ivory);border:none;position:relative;overflow:hidden}.phero:before{inset:0;background:var(--grain);opacity:.15;mix-blend-mode:overlay}.phero:after,.phero:before{content:"";position:absolute;pointer-events:none}.phero:after{top:-35%;right:-8%;width:260px;height:260px;background:radial-gradient(circle,rgba(217,174,84,.16),transparent 70%)}.phero>*{position:relative;z-index:1}.phero .eyebrow{color:var(--copper-lt)}.pbar{height:11px;background:rgba(255,255,255,.14);margin:14px 0 8px}.pbar,.pbar>i{border-radius:99px;overflow:hidden}.pbar>i{display:block;height:100%;background:linear-gradient(90deg,var(--copper),var(--copper-lt));box-shadow:0 0 14px rgba(217,174,84,.6);position:relative}.pbar>i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:shimmer 2.6s var(--ease) infinite}@keyframes shimmer{0%{transform:translateX(-100%)}60%,to{transform:translateX(260%)}}.pday{font-family:var(--serif);font-size:2.1rem;font-weight:800;color:var(--copper-lt);line-height:1}.pday small{font-size:.9rem;color:rgba(250,246,238,.6)}.plan{display:flex;flex-direction:column;gap:12px;margin:18px 0}.plan button{text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px 18px;cursor:pointer;transition:.18s var(--ease);font-family:var(--sans)}.plan button:hover{border-color:var(--copper);box-shadow:var(--shadow)}.plan .pname{font-family:var(--serif);font-weight:800;font-size:1.05rem}.plan .pprice{color:var(--copper);font-weight:700}.plan .pnote{font-size:.78rem;margin-top:4px}.muted,.plan .pnote{color:var(--muted)}.center{text-align:center}.mt{margin-top:16px}.ic{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle}.ic-eb{vertical-align:-2px;margin-right:6px;color:var(--copper);stroke-width:1.9}.ic-eb,.ic-sm{width:13px;height:13px}.ic-sm{vertical-align:-1px}.streak{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.6);backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border:1px solid rgba(255,255,255,.7);border-radius:99px;padding:8px 14px;font-size:.8rem;font-weight:700;box-shadow:var(--shadow);white-space:nowrap}.streak .ic,.streak b{color:var(--copper)}.app{min-height:100vh}.app,.side{display:flex}.side{width:248px;background:var(--ink);color:var(--ivory);flex:none;flex-direction:column;padding:24px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side .sbrand{font-family:var(--serif);font-weight:800;font-size:1.05rem;line-height:1.45;color:#fff;padding:6px 10px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}.side .sbrand small{display:block;font-size:.6rem;color:var(--copper-lt);letter-spacing:.22em;margin-top:6px;font-weight:700}.nav{flex-direction:column;gap:3px;flex:1 1}.nav,.nav a{display:flex}.nav a{align-items:center;gap:12px;padding:11px 12px;border-radius:11px;color:rgba(250,246,238,.7);text-decoration:none;font-weight:500;font-size:.92rem;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}.nav a:hover{background:rgba(255,255,255,.07);color:#fff}.nav a.active{background:var(--copper);color:#fff;box-shadow:0 6px 16px rgba(184,131,42,.32)}.nav .ic{width:19px;height:19px}.me{gap:11px;padding:11px 10px;border-top:1px solid rgba(255,255,255,.1);margin-top:10px;border-radius:11px;text-decoration:none}.me,.me .av{display:flex;align-items:center}.me .av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--copper),var(--copper-lt));justify-content:center;font-weight:700;color:#fff;flex:none}.me .nm{font-size:.85rem;color:#fff}.me .pl{font-size:.66rem;color:var(--copper-lt)}.shell-main{flex:1 1;min-width:0;padding:clamp(22px,3vw,40px);max-width:1020px}.top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;flex-wrap:wrap;gap:14px}.card h3,.weekhd{font-family:var(--serif)}.weekhd{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.02rem;margin:20px 0 11px;flex-wrap:wrap}.weekhd .tag{font-size:.64rem;background:var(--cream);color:var(--copper);padding:4px 11px;border-radius:99px;font-weight:700;letter-spacing:.04em}.weekhd .lk{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;color:var(--muted);font-family:var(--sans);font-weight:500}.lesson{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:#fff;text-decoration:none;color:inherit;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease)}.lesson.link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--copper)}.lesson .st{width:27px;height:27px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700}.lesson .st .ic{width:13px;height:13px}.lesson.done .st{background:var(--ok);color:#fff}.lesson.now .st{background:var(--copper);color:#fff}.lesson.lock .st{background:var(--cream);color:var(--muted)}.lesson.lock{opacity:.62}.lesson .ti{flex:1 1;font-size:.92rem}.lesson.now{border-color:var(--copper);box-shadow:var(--shadow)}.lmeta{font-size:.72rem;color:var(--muted)}.deadline{gap:5px;background:rgba(184,131,42,.1);color:var(--copper);border-radius:8px;padding:5px 12px;font-size:.78rem;font-weight:700}.back,.deadline{display:inline-flex;align-items:center}.back{gap:6px;background:none;border:none;color:var(--muted);font-family:var(--sans);font-size:.86rem;font-weight:500;cursor:pointer;text-decoration:none;transition:color .15s;margin-bottom:16px}.back:hover{color:var(--copper)}.back .ic{width:16px;height:16px;transform:scaleX(-1)}.prose{font-size:.95rem;line-height:1.95;color:#33304a}.prose h2{font-size:1.2rem;margin:22px 0 10px}.prose h2,.prose h3{font-family:var(--serif);color:var(--ink)}.prose h3{font-size:1.05rem;margin:18px 0 8px}.prose p{margin:0 0 12px}.prose ol,.prose ul{margin:0 0 12px;padding-left:1.3em}.prose li{margin:4px 0}.prose code{background:var(--cream);padding:2px 6px;border-radius:5px;font-size:.9em}.prose pre{background:var(--ink);color:var(--ivory);padding:14px;border-radius:10px;overflow:auto;font-size:.85rem;margin:0 0 12px}.prose pre code{background:none;padding:0;color:inherit}.prose strong{color:var(--ink)}.prose blockquote{border-left:3px solid var(--copper);padding-left:14px;color:var(--muted);margin:0 0 12px}.mnav,.mtop{display:none}.helpfab{position:fixed;bottom:26px;right:26px;z-index:50;display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.78);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);color:var(--ink);border:1px solid rgba(255,255,255,.7);border-radius:99px;padding:11px 18px 11px 14px;font-weight:700;font-size:.86rem;box-shadow:var(--shadow-lg);cursor:pointer;text-decoration:none;transition:transform .2s var(--spring),box-shadow .2s var(--ease)}.helpfab:hover{transform:translateY(-3px)}.helpfab .ic{width:22px;height:22px;color:var(--copper)}@media(max-width:680px){.app{flex-direction:column}.side{display:none}.mtop{display:flex;position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--ink);color:#fff;align-items:center;justify-content:space-between;padding:13px 16px}.mtop .sbrand{font-family:var(--serif);font-weight:800;font-size:.92rem}.mnav{display:flex;position:-webkit-sticky;position:sticky;bottom:0;z-index:10;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(30,21,53,.06)}.mnav a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 8px;font-size:.68rem;color:var(--muted);text-decoration:none;transition:color .15s}.mnav a.active{color:var(--copper);font-weight:700}.mnav .ic{width:20px;height:20px}.shell-main{padding:18px 14px 72px}.helpfab{bottom:74px;right:14px}}.grid{display:grid;grid-gap:18px;gap:18px}.g2{grid-template-columns:1.4fr 1fr}@media(max-width:780px){.g2{grid-template-columns:1fr}}.composer{display:flex;gap:12px;align-items:center;margin-bottom:14px}.composer input{flex:1 1;border:1px solid var(--line);border-radius:99px;padding:12px 18px;font-family:var(--sans);font-size:.9rem}.composer input:focus{outline:none;border-color:var(--copper);box-shadow:0 0 0 3px rgba(184,131,42,.12)}.composer .btn{width:auto;flex:none}.post{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:12px;box-shadow:var(--shadow);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}.post:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.post.pin{border-color:var(--copper);background:#fffdf8}.post .h{gap:10px;margin-bottom:9px}.post .av,.post .h{display:flex;align-items:center}.post .av{width:38px;height:38px;border-radius:50%;background:var(--ink);color:#fff;justify-content:center;font-weight:700;flex:none;font-size:.85rem}.post .nm{font-weight:700;font-size:.9rem}.post .meta{font-size:.72rem;color:var(--muted)}.post .body{font-size:.92rem;line-height:1.85;color:#33304a;white-space:pre-wrap}.post .react{display:flex;gap:18px;margin-top:11px;font-size:.8rem;color:var(--muted)}.post .react span{display:inline-flex;align-items:center;gap:6px}.post .react .ic{width:15px;height:15px}.post .react .liked{color:var(--copper);font-weight:700}.post .react .liked .ic{fill:rgba(184,131,42,.18)}.pinlabel{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;color:var(--copper);font-weight:700;margin-bottom:8px;letter-spacing:.06em}.phero2{position:relative;overflow:hidden}.assets{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:11px;gap:11px;margin:14px 0 4px}@media(max-width:560px){.assets{grid-template-columns:repeat(2,1fr)}}.asset{background:var(--cream);border-radius:13px;padding:14px 10px;text-align:center}.asset.goal{background:transparent;border:1.5px dashed var(--copper)}.asset .n{font-family:var(--serif);font-size:1.55rem;font-weight:800;color:var(--copper);line-height:1}.asset .n small{font-size:.74rem;font-weight:700}.asset .l{font-size:.7rem;color:var(--muted);margin-top:6px;line-height:1.4}.check{list-style:none;display:flex;flex-direction:column;gap:10px}.check button{width:100%;display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;font-size:.92rem;cursor:pointer;background:#fff;font-family:var(--sans);text-align:left;transition:.18s var(--ease)}.check button:hover{border-color:var(--copper)}.check button.done,.check li.done button{background:#f3f8f4;border-color:#cfe6d6}.check .box{width:22px;height:22px;border-radius:7px;border:2px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;color:transparent}.check .box .ic{width:13px;height:13px}.check button.done .box{background:var(--ok);border-color:var(--ok);color:#fff}.check button.done span.t{color:var(--muted);text-decoration:line-through}.badges{display:flex;gap:11px;flex-wrap:wrap}.badge{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 10px;text-align:center;width:86px}.badge .bic{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#fbf2dd,#f3e6c4);color:var(--copper);display:flex;align-items:center;justify-content:center;margin:0 auto 7px}.badge .bic .ic{width:21px;height:21px}.badge .bn{font-size:.66rem;color:var(--muted)}.badge.lock{opacity:.45}.badge.lock .bic{background:#f1efe9;color:var(--muted)}.helplist{list-style:none;display:flex;flex-direction:column;gap:12px}.helplist li{display:flex;gap:11px;font-size:.9rem;align-items:flex-start;line-height:1.65}.helplist li .ic{width:18px;height:18px;color:var(--copper);flex:none;margin-top:2px}.helplist b{font-family:var(--serif)}.num{width:21px;height:21px;border-radius:50%;background:var(--copper);color:#fff;font-size:.72rem;font-weight:700;justify-content:center;flex:none;margin-top:1px}.chip,.num{display:inline-flex;align-items:center}.chip{gap:6px;font-size:.82rem;background:var(--cream);color:var(--ink);padding:8px 14px;border-radius:99px}.chip .ic{width:14px;height:14px;color:var(--copper)}.phero3{background:radial-gradient(120% 130% at 100% 0,rgba(217,174,84,.2),transparent 46%),radial-gradient(110% 120% at -5% 105%,rgba(124,92,210,.14),transparent 52%),linear-gradient(140deg,var(--ink),var(--ink2) 55%,var(--ink3));color:var(--ivory);border:none;position:relative;overflow:hidden}.phero3:before{content:"";position:absolute;inset:0;background:var(--grain);opacity:.13;mix-blend-mode:overlay;pointer-events:none}.phero3>*{position:relative;z-index:1}.phero3 .eyebrow{color:var(--copper-lt)}.phero3 h3{color:#fff}.page-enter{animation:pageIn .42s var(--ease)}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.confetti{position:fixed;left:50%;top:42%;z-index:200;pointer-events:none}.confetti i{position:absolute;left:0;top:0;width:9px;height:14px;border-radius:2px;opacity:0;animation:pop 1s var(--ease) forwards}@keyframes pop{0%{opacity:1;transform:translate(0) rotate(0) scale(1)}15%{opacity:1}to{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(.5)}}.loading{min-height:60vh;display:flex;align-items:center;justify-content:center}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--cream);border-top-color:var(--copper);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}