:root{color-scheme:dark;--bg:#252525;--ink:#eeeae0;--muted:#bcbab2;--gold:#d8bb77;--line:#d5cba330;--serif:Georgia,'Songti SC',serif}*{box-sizing:border-box}html{scroll-padding-top:135px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:100svh}.lunar-surface{position:fixed;inset:0;z-index:-1;background:linear-gradient(#25252550,#25252510 45%,#252525 100%),url('assets/moon.jpg') center/cover;filter:grayscale(1);opacity:.34}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:8;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}button,input{font:inherit}button{color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}header{height:90px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between}.brand{color:var(--ink);text-decoration:none;font:32px var(--serif);letter-spacing:-1.5px}.language{display:flex;align-items:center;gap:3px;font-size:14px}.language button{min-width:44px;min-height:44px;color:#aaa89f}.language button.active{color:var(--gold)}.language span{color:#85837a}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);grid-template-areas:'dictionary toolbar' 'dictionary studio' 'dictionary positions' 'dictionary download';gap:0 7vw;max-width:1480px;padding:10px 5vw 35px;margin:auto}.editor-toolbar{grid-area:toolbar;display:flex;justify-content:space-between;align-items:center;max-width:680px;width:100%;margin:auto}.count-control{display:flex;align-items:center;gap:8px}.count-control>span{font-size:14px;color:var(--muted);margin-right:12px}.count-control button{width:54px;height:52px;font:26px var(--serif);border-bottom:1px solid transparent;color:#c0bcb0}.count-control button.active{background:#dec88b12;border-color:var(--gold);color:#f0d499}.text-button{font-size:14px;color:var(--muted);min-height:44px;padding:8px 12px}.text-button:hover{color:var(--gold)}.studio{grid-area:studio;position:relative;min-width:0}.canvas{height:clamp(275px,42svh,450px);position:relative}#symbol-holder{position:absolute;inset:8px 0;display:flex;align-items:center;justify-content:center}#symbol-holder>svg{height:100%;width:100%;max-width:430px;overflow:visible;filter:drop-shadow(1px 3px 2px #08080870)}.rune-layer{transition:opacity .2s}#empty-canvas{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:18px var(--serif);letter-spacing:2px;color:#cec7b17d;pointer-events:none;margin:0}#empty-canvas[hidden]{display:none}.trace-button{position:absolute;right:0;bottom:8px;color:var(--muted);font-size:13px;min-height:44px;padding:8px 12px}.trace-button[aria-pressed=true]{color:var(--gold)}.position-picker{grid-area:positions;width:100%;max-width:680px;margin:auto}.slots{display:grid;grid-template-columns:repeat(var(--count,4),minmax(0,1fr));gap:12px}.slot{position:relative;border-bottom:1px solid var(--line);min-width:0}.slot.active{border-color:var(--gold);background:#d8bb770b}.slot-select{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:113px;padding:8px 3px 12px}.slot-select:active{background:#dacb9712}.slot-glyph{height:28px;width:29px;color:var(--gold);margin:3px 0}.slot-plus{height:30px;font-size:26px;font-weight:200;color:#c9b781;line-height:30px}.slot-role{font-size:13px;color:#c4c1b7}.slot-name{font:17px var(--serif);color:#eee6d3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-remove{position:absolute;right:-6px;top:-8px;min-width:44px;min-height:44px;font-size:20px;color:#b3b0a5;line-height:1}.instruction{font-size:14px;line-height:1.5;margin:12px 0 0;color:#d8cba8;text-align:center;min-height:21px}.dictionary{grid-area:dictionary;min-width:0;padding:0}.panel-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:10px 0 14px}.panel-heading h2{font:23px var(--serif);margin:0}.meta{font-size:10px;letter-spacing:.6px;color:#a9a89f}.search{display:block;border-bottom:1px solid var(--line);margin:0 0 14px}.search input{width:100%;background:none;border:0;outline:none;color:var(--ink);font-size:16px;min-height:44px;padding:6px 0}.search input::placeholder{color:#b8b5a9}.rune-detail{min-height:108px;padding:3px 0 16px}.detail-top{display:flex;align-items:baseline;gap:11px}.detail-top h3{font:24px var(--serif);margin:0}.detail-top span{font-size:12px;color:#aaa79b}.detail-meaning{font-size:14px;color:var(--gold);margin:5px 0}.detail-note{font-size:13px;line-height:1.65;color:#bcb8ac;margin:0}.detail-empty{font-size:14px;color:#c1bdaf;margin:8px 0}.rune-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.rune-card{position:relative;min-height:74px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 1px;color:#ded8c8}.rune-card svg{width:27px;height:31px}.rune-card span{font:13px var(--serif)}.rune-card.selected{border-color:#c4a96680;background:#d3b77a15;color:#e9cf91}.rune-card.in-use:after{content:'·';position:absolute;top:0;right:5px;font-size:21px;color:var(--gold)}@media(hover:hover){.rune-card:hover{background:#dfd0a415}.slot-select:hover{background:#dfd0a409}}.empty-search{grid-column:1/-1;font-size:14px;color:var(--muted);padding:20px 0}.reading{grid-area:reading;max-width:680px;width:100%;margin:auto}.reading p{font:16px/1.85 var(--serif);text-align:center;color:#d2cabc;margin:15px 0 20px;min-height:30px}.download-bar{grid-area:download;display:flex;flex-direction:column;align-items:center;gap:7px}.download-options>button{min-height:52px;width:min(100%,340px);padding:13px 20px;background:#d3bb80;color:#28261e;font-size:16px;letter-spacing:.5px}.download-options>button:not(:disabled):hover{background:#e4cc95}.download-bar>span{font-size:12px;color:#b7b09e}.download-options>button:disabled{background:#8b8470;color:#ded5bf;opacity:.5}#toast{position:fixed;bottom:105px;left:50%;transform:translate(-50%,10px);z-index:30;background:#35332e;color:#f0dbab;padding:10px 18px;font-size:14px;border:1px solid #d4bd8038;max-width:90vw;opacity:0;pointer-events:none;transition:.2s;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:900px){.workspace{grid-template-columns:230px minmax(0,1fr);gap:0 35px;padding-left:25px;padding-right:25px}.count-control{gap:4px}.count-control>span{margin-right:3px}.count-control button{width:48px}.panel-heading{display:block}.meta{display:block;margin-top:4px}.rune-card span{font-size:12px}.slots{gap:7px}.slot-name{font-size:15px}.canvas{height:330px}}@media(max-width:700px){header{height:65px;padding:0 22px}.brand{font-size:30px}.workspace{display:flex;flex-direction:column;gap:0;padding:0 20px calc(106px + env(safe-area-inset-bottom))}.editor-toolbar{order:0;margin:3px 0 8px}.count-control>span{font-size:14px;margin-right:12px}.count-control button{width:55px;height:52px;font-size:28px}.studio{order:1}.canvas{height:clamp(175px,25svh,235px)}#symbol-holder{inset:0 30px}#symbol-holder>svg{max-width:265px}.trace-button{bottom:0;right:-5px;font-size:13px}#empty-canvas{font-size:17px;letter-spacing:1px}.position-picker{order:2;position:sticky;top:0;z-index:9;margin:0 -8px 16px;padding:7px 8px 9px;width:calc(100% + 16px);max-width:none;background:#292928eb;backdrop-filter:blur(16px);border-bottom:1px solid #e8d5a113}.slots{gap:7px}.slot-select{min-height:93px;padding:7px 1px 8px}.slot-glyph{height:23px;width:25px;margin:0}.slot-plus{height:25px;font-size:25px;line-height:25px}.slot-role{font-size:12px}.slot-name{font-size:15px}.slot-remove{right:-8px;top:-10px;font-size:18px}.instruction{font-size:13px;line-height:1.5;margin-top:8px;min-height:20px;letter-spacing:0}.dictionary{order:3}.panel-heading{display:flex;align-items:center;margin:4px 0 7px}.panel-heading h2{font-size:22px}.meta{display:inline;font-size:10px;margin:0}.search{margin-bottom:9px}.rune-detail{min-height:96px;padding-bottom:13px}.detail-top h3{font-size:22px}.detail-meaning{font-size:14px;margin:3px 0}.detail-note{font-size:13px}.rune-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.rune-card{min-height:76px}.rune-card span{font-size:14px}.rune-card svg{height:31px;width:28px}.reading{order:4}.reading p{font-size:16px;line-height:1.85;margin:22px 0 10px}.download-bar{position:fixed;bottom:0;left:0;right:0;padding:10px 20px calc(10px + env(safe-area-inset-bottom));z-index:10;background:#252524f5;backdrop-filter:blur(18px);gap:5px;border-top:1px solid #d8bb7718}.download-options>button{width:100%;max-width:600px;min-height:50px;font-size:16px}.download-bar>span{font-size:11px}.lunar-surface{background-position:55% top;opacity:.34}.text-button{padding:8px;font-size:14px}}@media(max-width:359px){.workspace{padding-left:14px;padding-right:14px}.count-control>span{margin-right:7px}.count-control button{width:48px}.slot-name{font-size:13px}.rune-card span{font-size:13px}.instruction{font-size:12px}.panel-heading .meta{font-size:9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Selected meanings are the main reading surface. */
.rune-detail{padding:12px 0 22px;min-height:130px}.detail-top h3{font-size:30px}.detail-meaning{font-size:23px;line-height:1.45;margin:9px 0}.detail-note{font-size:18px;line-height:1.55;color:#ddd5c4}@media(max-width:700px){.rune-detail{padding:10px 0 20px;min-height:125px}.detail-top h3{font-size:28px}.detail-meaning{font-size:22px}.detail-note{font-size:18px}.position-picker{padding-bottom:7px}.panel-heading{margin-bottom:12px}}

.download-options{display:flex;width:100%;max-width:520px}.download-options>button{flex:1;min-width:0;width:auto;font-size:14px;letter-spacing:0}.download-options>button+button{margin-left:10px}.download-options>button:first-child{background:transparent;border:1px solid #d3bb80;color:#dfcc9a}@media(max-width:700px){.download-options{max-width:600px}.download-options>button{width:auto;min-height:50px;font-size:14px}}

.download-options>button[hidden]+button{margin-left:0}
