:root{--ink: #15120e;--muted: #6a6459;--paper: #ebeae4;--folder-blue: #1f4ea3;--title-blue: #0d52c4;--cream: #f3ead9;--display: "Bodoni Moda", "Didot", "Times New Roman", serif;--serif: "Cormorant Garamond", "Noto Serif Thai", "Noto Serif KR", Georgia, serif;--sans: "Inter", "Noto Sans Thai", "Noto Sans KR", system-ui, -apple-system, sans-serif;--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .2 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--grain-strong: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .38 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;background:#000;color:#fff;font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;transition:background-color .35s ease}body.lock{overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid currentColor;outline-offset:3px}.boot{min-height:100dvh;background:#000}.paper{background:var(--grain),var(--paper);color:var(--ink)}.panel{color:var(--cream);background:var(--grain-strong),radial-gradient(120% 90% at 18% 8%,rgba(255,255,255,.1),transparent 60%),radial-gradient(90% 80% at 88% 92%,rgba(0,0,0,.3),transparent 62%),var(--deep, #33200f)}.cover{min-height:100dvh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;justify-content:center;gap:clamp(36px,9dvh,90px);padding:calc(env(safe-area-inset-top) + 28px) 16px calc(env(safe-area-inset-bottom) + 28px)}.masthead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:0 4px;color:var(--title-blue)}.mast-words{display:grid;font-family:var(--display);font-weight:500;font-size:min(12.4vw,58px);line-height:1;letter-spacing:-.01em}.m1{justify-self:start}.m2{justify-self:end;transform:rotate(180deg);margin-top:-.02em}.mast-note{font-family:var(--serif);font-style:italic;font-size:15px;line-height:1.55;padding-top:.5em}.mast-note span{display:flex;align-items:center;gap:4px;white-space:nowrap}.mast-note .a:after,.mast-note .b:before{content:"";width:20px;height:1px;background:currentColor;transform:rotate(-40deg)}.mast-note .b{justify-content:flex-end}.folder{width:100%;height:auto;display:block;overflow:visible;user-select:none;-webkit-user-select:none}.tab{cursor:pointer;transition:transform .18s ease;outline:none}.tab:hover,.tab:active,.tab:focus-visible{transform:translateY(-6px)}.tab:focus-visible .hit{stroke:#fff;stroke-width:2}.tab text{font-family:var(--sans);font-weight:500;font-size:15px;letter-spacing:.16em;fill:#fff;pointer-events:none}.tab text.tab-sm{font-size:12px;letter-spacing:.1em;font-weight:400}.folder-type text{font-family:var(--sans);fill:#fff}.folder-type .brand{font-weight:800;font-size:31px;letter-spacing:-.02em}.folder-type .pron{font-size:38px}.folder-type .hint{font-weight:300;font-size:14px;letter-spacing:.08em;opacity:.85}.folder-type .spec{font-weight:300;font-size:33px;letter-spacing:-.02em}.add{cursor:pointer;outline:none}.add:focus-visible text.pron{text-decoration:underline}.add:active text.pron{opacity:.7}.lang{min-height:100dvh;background:var(--bg);color:var(--cream);padding:0 16px calc(env(safe-area-inset-bottom) + 56px);animation:lang-in .35s ease both}@keyframes lang-in{0%{opacity:0}to{opacity:1}}.lang>*{max-width:920px;margin-left:auto;margin-right:auto}.lang-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 8px) 0 8px;background:var(--bg)}.back{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin-left:-6px;font-weight:800;letter-spacing:-.01em;font-size:15px}.plus{width:44px;height:44px;display:grid;place-items:center;margin-right:-8px}.lang-head{padding:18px 0 26px}.lang-head h1{font-family:var(--display);font-weight:500;font-size:clamp(52px,17vw,88px);line-height:1;letter-spacing:-.02em}.lang-head p{margin-top:10px;font-size:14px;font-weight:300;opacity:.9}.seg{display:inline-flex;margin-top:20px;border:1px solid rgba(243,234,217,.55)}.seg button{min-width:84px;min-height:40px;padding:0 18px;font-size:14px;letter-spacing:.06em;transition:background-color .2s,color .2s}.seg button.on{background:var(--cream);color:var(--ink)}.block{margin-top:12px}.block+.block{margin-top:44px}.block-title{font-family:var(--serif);font-weight:500;font-size:24px;display:flex;align-items:baseline;gap:10px;padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid rgba(243,234,217,.4)}.block-title span{font-size:16px;opacity:.75;font-style:italic}.empty{font-family:var(--serif);font-size:19px;line-height:1.5;opacity:.9;padding:12px 0;max-width:34ch}.cards{display:grid;gap:28px;grid-template-columns:1fr}.wcard{width:100%;max-width:400px;margin:0 auto;display:flex;flex-direction:column;box-shadow:0 22px 40px -26px #000000b3}.wcard-top{position:relative;aspect-ratio:5 / 4;display:grid;place-items:center;padding:22px}.hand{font-family:var(--hand);font-weight:400;line-height:1.15;text-align:center;color:var(--cream);overflow-wrap:anywhere}.edit-btn{position:absolute;top:6px;right:6px;width:44px;height:44px;display:grid;place-items:center;opacity:.7}.edit-btn:hover,.edit-btn:focus-visible{opacity:1}.wcard-body{position:relative;min-height:210px;padding:28px 22px 22px}.track{font-family:var(--sans);font-weight:300;font-size:13px;letter-spacing:.24em;text-transform:uppercase;line-height:2;overflow-wrap:anywhere}.track.indent{padding-left:32%}.wcard-body hr,.face-back hr{width:44px;border:0;border-top:1px solid var(--ink);margin:22px 0 14px}.ex{font-family:var(--serif);font-size:19px;line-height:1.38;padding-right:40px}.cmp{font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.4;color:var(--muted);margin-top:8px;padding-right:40px}.pg{position:absolute;right:22px;bottom:18px;font-family:var(--serif);font-size:17px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{position:relative;aspect-ratio:4 / 3;display:grid;place-items:center;padding:14px 10px 22px;text-align:center;overflow:hidden;box-shadow:inset 0 0 0 1px #f3ead924}.tile:active{filter:brightness(1.15)}.tile-cta{position:absolute;right:10px;bottom:7px;font-size:11px;letter-spacing:.14em;opacity:.6}.deck{max-width:380px!important}.deck-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:14px}.count{font-family:var(--serif);font-size:18px;font-style:italic}.deck-tools{display:flex;gap:6px}.deck-tools button{min-height:40px;padding:0 10px;font-size:14px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#f3ead980}.flip{width:100%;height:min(540px,calc(100dvh - 330px));min-height:400px;perspective:1400px;cursor:pointer;outline-offset:6px}.flip-in{position:relative;width:100%;height:100%;transition:transform .6s cubic-bezier(.3,.7,.2,1);transform-style:preserve-3d}.is-flipped .flip-in{transform:rotateY(180deg)}.face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:0 22px 40px -26px #000000b3}.front{display:grid;place-items:center;padding:28px;text-align:center}.flash-word{font-family:var(--serif);font-weight:500;font-size:clamp(46px,15vw,76px);line-height:1.1;overflow-wrap:anywhere}.flip-hint{position:absolute;bottom:20px;left:0;right:0;font-family:var(--serif);font-style:italic;font-size:17px;opacity:.75}.lock{position:absolute;bottom:24px;left:0;right:0;display:grid;justify-items:center;gap:12px;font-size:14px}.face-back{transform:rotateY(180deg);padding:32px 24px 28px;overflow:auto}.face-back .pg{position:absolute;right:24px;bottom:20px}.deck-nav{display:flex;justify-content:center;gap:28px;margin-top:20px}.round{width:60px;height:60px;display:grid;place-items:center;border:1px solid rgba(243,234,217,.6);border-radius:50%;transition:background-color .2s,color .2s}.round:not(:disabled):active{background:var(--cream);color:var(--ink)}.round:disabled{opacity:.3}.note-lite{font-size:14px;font-weight:300;opacity:.9}.note-lite.center{text-align:center;margin-top:14px}.done{text-align:center;padding-top:48px;display:grid;justify-items:center;gap:12px}.done-title{font-family:var(--display);font-size:40px;font-weight:500}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#0000009e;animation:fade .2s ease both}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:480px;max-height:94dvh;overflow-y:auto;padding:26px 22px calc(env(safe-area-inset-bottom) + 22px);animation:rise .28s cubic-bezier(.2,.8,.2,1) both;overscroll-behavior:contain}@keyframes rise{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@media (min-width: 640px){.scrim{align-items:center}.sheet{padding-bottom:26px}}.sheet-title{font-family:var(--display);font-weight:500;font-size:28px;letter-spacing:-.01em}.lab{display:block;margin:22px 0 4px;font-size:13px;letter-spacing:.12em;color:var(--muted)}.field{width:100%;display:block;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;padding:10px 0;font:inherit;font-size:17px;color:var(--ink);outline:none;resize:none}.field:focus{border-bottom-width:2px;padding-bottom:9px}.word-field{font-family:var(--serif);font-size:30px;padding:6px 0 8px}.field::placeholder{color:#15120e66}.detect{display:flex;align-items:center;gap:8px;min-height:22px;margin-top:10px;font-size:13px;line-height:1.4;color:var(--ink)}.detect i{width:12px;height:12px;flex:none}.detect.idle{color:var(--muted)}.detect.bad{color:#a6231d}.detect.ok{color:#1f6b43}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 2px}.chip{min-height:36px;padding:0 12px;border:1px solid rgba(21,18,14,.45);font-size:14px}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.actions{display:flex;gap:12px;margin-top:26px}.btn{flex:1;min-height:50px;padding:0 16px;border:1px solid var(--ink);font-size:16px;letter-spacing:.1em;transition:opacity .2s}.btn.solid{background:var(--ink);color:var(--paper)}.btn.solid.light{background:var(--cream);color:var(--ink);border-color:var(--cream);flex:none;padding:0 28px}.btn:disabled{opacity:.35}.danger{display:block;margin:16px auto 0;min-height:40px;font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}.note{margin-top:16px;font-size:15px;line-height:1.7}.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:28px;max-width:440px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 24px) 16px calc(env(safe-area-inset-bottom) + 24px)}.auth-brand{color:#fff;display:grid;gap:2px}.auth-brand b{font-weight:800;font-size:34px;letter-spacing:-.02em}.auth-brand span{font-weight:800;font-size:34px;letter-spacing:-.02em;color:var(--title-blue)}.auth-card{padding:26px 22px 20px}.toast{position:fixed;z-index:40;left:50%;bottom:calc(env(safe-area-inset-bottom) + 28px);transform:translate(-50%);padding:12px 20px;background:var(--paper);color:var(--ink);font-size:14px;white-space:nowrap;animation:rise .25s ease both}.banner{position:fixed;z-index:30;top:env(safe-area-inset-top);left:0;right:0;padding:8px 16px;background:#a6231d;color:#fff;font-size:13px;text-align:center}.banner.soft{background:#ffffffeb;color:var(--ink)}@media (min-width: 720px){.cards{grid-template-columns:1fr 1fr;align-items:start}.tiles{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.lang.is-flash .lang-head{padding:6px 0 14px}.lang.is-flash .lang-head h1{font-size:40px}.lang.is-flash .lang-head p{display:none}.lang.is-flash .seg{margin-top:12px}.lang.is-flash .flip{height:min(500px,calc(100dvh - 330px));min-height:340px}
