:root{color-scheme:dark;--bg:#121017;--ink:#f0e8d8;--gold:#ccb079;--dim:#afa497;--line:#4a4034;--violet:#ccb4f1;--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;font-family:'Yu Gothic',Meiryo,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 25%,#35234145,transparent 50%),radial-gradient(ellipse at 0 80%,#302a1940,transparent 50%);min-height:100vh}button,input{font:inherit}button,a,label,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #ead4a3;outline-offset:5px}header{max-width:1220px;min-height:100px;margin:auto;padding:23px 45px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ccb07926}.brand{display:flex;gap:16px;align-items:center;text-decoration:none;color:var(--gold);font:700 23px var(--serif);letter-spacing:.16em}.brand small{display:block;font:12px Georgia,serif;letter-spacing:.16em;margin-top:8px}.seal{display:grid;place-items:center;border:1px solid var(--gold);width:42px;height:47px;font:26px var(--serif);outline:1px solid #ccb07945;outline-offset:4px}.volume{font:13px var(--serif);letter-spacing:.15em;color:var(--dim)}.volume span{padding:0 12px;color:var(--gold)}main{max-width:1120px;margin:auto;padding:35px 36px 25px}.intro{margin-bottom:35px}.eyebrow{font:13px var(--serif);color:var(--gold);letter-spacing:.2em}h1{font:500 40px/1.5 var(--serif);letter-spacing:.14em;margin:11px 0 9px}.intro p{font:14px/1.8 var(--serif);color:var(--dim);letter-spacing:.07em;margin:0}.layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:start}.chapter{display:flex;align-items:center;gap:13px;font:500 18px var(--serif);letter-spacing:.15em;margin:0 0 16px}.chapter>span{font-size:13px;color:var(--gold);width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);transform:rotate(-5deg)}.mode{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode button{display:flex;align-items:center;justify-content:center;gap:18px;padding:17px 12px;border:1px solid var(--line);background:#ffffff02;color:var(--dim);font:500 22px var(--serif);letter-spacing:.13em;min-height:83px}.mode small{display:block;font-size:12px;margin-top:8px;letter-spacing:.18em}.mode-mark{font-size:28px;color:#7f7361}.mode button[aria-pressed=true]{background:linear-gradient(120deg,#ccb07915,#ccb07904);border-color:var(--gold);color:#f4dfb6;box-shadow:inset 0 0 0 3px var(--bg),inset 0 0 0 4px #ccb07930}.mode button[aria-pressed=true] .mode-mark{color:var(--gold)}.section-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:28px 0 0}.section-heading .chapter{margin:0}.reset{background:transparent;border:0;border-bottom:1px solid #99887355;color:var(--dim);padding:5px 0;font-size:12px}.reset:hover{color:var(--gold)}fieldset{border:0;border-bottom:1px solid #ccb0791d;margin:0;padding:19px 0 21px;min-width:0}legend{float:left;width:100%;display:flex;gap:10px;align-items:baseline;font:500 18px var(--serif);letter-spacing:.08em;margin-bottom:13px}legend small{color:#a99c89;font-size:12px;letter-spacing:.12em}.options{clear:both;display:grid;grid-template-columns:repeat(var(--count),minmax(0,1fr));gap:7px}.option{position:relative;min-height:45px;display:flex;align-items:center;justify-content:center;border:1px solid #514638;background:#18151c;color:#c3b9aa;font-size:14px;padding:9px 5px;text-align:center;cursor:pointer;line-height:1.5}.option:has(input:checked){color:#fbe9c4;border-color:var(--gold);background:linear-gradient(135deg,#9e804737,#9e804712);box-shadow:inset 0 -2px var(--gold)}.option:hover{border-color:#b29666}.option input{position:absolute;opacity:0;width:1px;height:1px}.option:has(input:focus-visible){outline:2px solid #e8d4a4;outline-offset:3px}.selected-forbidden{margin:10px 0 0;color:var(--violet);font-size:12px;line-height:1.7}.forbidden{margin-top:24px;border:1px solid #66507c70;background:#29203130}.forbidden>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:14px;padding:18px 20px;color:#c6b2da;font:16px var(--serif);letter-spacing:.1em}.forbidden>summary::-webkit-details-marker{display:none}.forbidden summary small{display:block;font:12px sans-serif;color:#9e8db1;margin-top:6px;letter-spacing:.13em}.lock{font-size:25px}.expand{margin-left:auto;font:20px var(--serif)}.forbidden[open] .expand{transform:rotate(45deg)}.forbidden-content{padding:0 20px 18px}.forbidden-intro{font:13px var(--serif);color:#b6a3c9;padding:7px 0 0;margin:0}.forbidden fieldset{border-color:#b494d225;padding:18px 0}.forbidden legend{font-size:15px;color:#d9c5ed}.forbidden .options{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.forbidden .option{border-color:#675277;min-height:43px;color:#cbb6de;font-size:14px}.forbidden .option:has(input:checked){border-color:var(--violet);background:#a276c42c;box-shadow:inset 0 -2px var(--violet);color:#edd8ff}.fine-note{font-size:12px;color:#a395b0;line-height:1.8;margin:13px 0 0}.result-column{position:sticky;top:28px}.result{position:relative;padding:24px 30px 28px;background:linear-gradient(145deg,#29232b,#1a1720 50%,#24202a);border:1px solid #af935a;outline:1px solid #ccb07936;outline-offset:-7px;box-shadow:0 18px 70px #0005}.result::before,.result::after{content:'✧';position:absolute;color:var(--gold);font-size:25px;background:#211d25;line-height:1;width:25px;text-align:center}.result::before{left:-12px;top:-12px}.result::after{right:-12px;bottom:-12px}.ticket-top{display:flex;justify-content:space-between;gap:10px;color:var(--gold);font:12px var(--serif);letter-spacing:.06em}.ticket-top span:last-child{color:#aaa08f}#spell-state.forbidden-active{color:var(--violet)}.sigil{margin:30px auto 18px;border:1px solid #ccb0794a;border-radius:50%;height:66px;width:66px;display:grid;place-items:center;outline:1px solid #ccb07926;outline-offset:7px;position:relative;color:var(--gold);font-size:42px}.sigil::before{content:'';position:absolute;inset:9px;border:1px solid #ccb0794a;transform:rotate(45deg)}.result h2{font:500 26px var(--serif);text-align:center;letter-spacing:.18em;margin:24px 0 13px}.timing{color:var(--dim);font-size:12px;line-height:1.8;text-align:center;margin:0}.spell-wrap{padding:25px 0 21px;text-align:center;min-height:155px;display:flex;flex-direction:column;justify-content:center}.spell{font:600 27px/1.9 var(--serif);letter-spacing:.06em;color:#f7e7c5;text-shadow:0 0 26px #e6b76520;margin:0;overflow-wrap:anywhere}.spell .part{display:inline-block;max-width:100%}.spell-end{font:15px/1.8 var(--serif);color:#c0b19c;margin-top:9px;letter-spacing:.1em}.incantation-rule{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:12px}.incantation-rule:before,.incantation-rule:after{content:'';height:1px;background:linear-gradient(90deg,transparent,#a0844b80);flex:1}.incantation-rule:after{transform:rotate(180deg)}.recipe{margin-top:19px}.recipe-title{font:12px var(--serif);color:#ab9776;letter-spacing:.16em}dl{margin:12px 0 0;display:grid;grid-template-columns:1fr auto;gap:9px 15px;font-size:14px;line-height:1.65}dt{color:#b3a797}dd{margin:0;text-align:right;color:#ded1bc}dd.is-forbidden{color:var(--violet)}.result-caption{text-align:center;color:#9e907d;font:12px var(--serif);letter-spacing:.14em;margin:21px 0}footer{display:flex;justify-content:space-between;gap:22px;border-top:1px solid #ccb07926;padding-top:22px;margin-top:44px;font:12px/1.8 var(--serif);color:#9e9180}footer>span{white-space:nowrap}footer>span span{padding:0 8px;color:var(--gold)}.colophon{max-width:400px}.colophon>summary{cursor:pointer;text-align:right}.colophon p{font-family:sans-serif;font-size:12px;color:#aaa093;line-height:1.9}a{color:inherit}figure{margin:15px 0;display:flex;align-items:center;gap:12px}figure img{object-fit:cover;filter:saturate(.5)}figcaption{font-size:12px;line-height:1.8}@media(max-width:800px){header{padding:20px 24px;min-height:86px}.volume{font-size:12px}.volume span{padding:0 5px}.brand{font-size:20px;gap:12px}.brand small{font-size:12px;letter-spacing:.02em}.seal{height:37px;width:34px;font-size:23px}main{padding:28px 22px 22px}h1{font-size:32px;letter-spacing:.08em}.intro{margin-bottom:27px}.intro p{font-size:13px}.layout{grid-template-columns:1fr;gap:30px}.result-column{position:static;grid-row:1}.result{padding:18px 23px 20px}.sigil{display:none}.result h2{font-size:21px;margin:19px 0 9px}.spell-wrap{min-height:0;padding:17px 0}.spell{font-size:25px;line-height:1.7}.spell-end{font-size:14px;margin-top:5px}.recipe{margin-top:12px}.recipe-title{display:none}dl{display:flex;flex-wrap:wrap;gap:5px 8px;font-size:12px}dt:after{content:'：'}dd{margin-right:7px;text-align:left}.result-caption{display:none}.section-heading{margin-top:27px}footer{margin-top:32px}.colophon{max-width:52%}}@media(max-width:380px){.volume{display:none}h1{font-size:29px}.option{font-size:14px;padding:8px 3px}.mode button{font-size:20px}.mode{gap:9px}.layout{gap:26px}}@media(prefers-reduced-motion:no-preference){button,.option{transition:background .2s,border-color .2s,color .2s}.sigil span{animation:shimmer 6s ease-in-out infinite}@keyframes shimmer{50%{opacity:.5;text-shadow:0 0 24px #eac780}}}
.extra-order{border-top:1px solid #ccb07930;padding-top:14px;margin-top:14px}.extra-order[hidden]{display:none}.extra-order h3{font:15px var(--serif);color:var(--gold);margin:0 0 9px}.extra-order h3 small{display:block;font:12px sans-serif;color:var(--dim);margin-top:6px}.extra-order p{font:17px/1.9 var(--serif);margin:0;overflow-wrap:anywhere}.ritual-group,.craft{border-top:1px solid #a080b544;margin-top:18px;padding-top:17px}.ritual-group>summary,.craft>summary{cursor:pointer;font:15px var(--serif);color:#d5bfeb;letter-spacing:.08em}.craft label{display:grid;gap:8px;font-size:13px;color:var(--dim);margin-top:15px}.craft select{width:100%;border:1px solid #665277;background:#1c1723;color:var(--ink);font:14px sans-serif;padding:10px;min-height:44px}.craft select:focus-visible{outline:2px solid var(--gold)}#source-list{margin-top:14px}#source-list p{margin:12px 0}#source-list small{display:block;color:#9d879e}

.forbidden .option{flex-direction:column;gap:5px;padding:10px 7px}.shop-example{font-size:11px;line-height:1.6;color:#ac9bbb;font-weight:400;overflow-wrap:anywhere}.option:has(input:checked) .shop-example{color:#d0bddd}
/* Twin editions: celestial ivory and the original nocturnal grimoire. */
.header-tools{display:flex;align-items:center;gap:26px}.theme-switch{display:flex;border:1px solid var(--line);padding:4px;gap:3px;background:var(--bg)}.theme-switch button{border:0;background:transparent;color:var(--dim);font:13px var(--serif);min-height:36px;padding:7px 12px;white-space:nowrap}.theme-switch button span{font-size:18px;margin-right:5px}.theme-switch button[aria-pressed=true]{background:#ccb07922;color:var(--ink);box-shadow:inset 0 -1px var(--gold)}
:root[data-theme=light]{color-scheme:light;--bg:#f9f7f0;--ink:#303f49;--gold:#876629;--dim:#64737a;--line:#cfc6af;--violet:#70608c}
[data-theme=light] body{background:radial-gradient(ellipse at 85% 0%,#dcecf1b3,transparent 48%),radial-gradient(ellipse at 5% 32%,#fff5d9a8,transparent 46%),linear-gradient(180deg,#ffffff8c,#f9f7f0);background-attachment:fixed}
[data-theme=light] header{border-color:#b99b5840}[data-theme=light] .seal{background:#fffdf5;outline-color:#b99b5845}[data-theme=light] .brand{color:#715824}[data-theme=light] h1{color:#344e60;text-shadow:0 2px 20px #ffffff}[data-theme=light] .eyebrow{color:#82612b}
[data-theme=light] .mode button{background:#ffffff80}[data-theme=light] .mode-mark{color:#7e929d}[data-theme=light] .mode button[aria-pressed=true]{color:#3e5f73;border-color:#ad925b;background:linear-gradient(135deg,#fffdf5,#edf4f6);box-shadow:inset 0 0 0 3px #fffef9,inset 0 0 0 4px #c6b78770,0 5px 18px #718a9710}
[data-theme=light] fieldset{border-color:#b3a17c35}[data-theme=light] legend small{color:#72786c}[data-theme=light] .option{background:#fffefa;color:#53646c;border-color:#d0cab9}[data-theme=light] .option:hover{border-color:#92733b}[data-theme=light] .option:has(input:checked){color:#354f60;border-color:#a68a50;background:linear-gradient(135deg,#fbf1d7,#fffdf5);box-shadow:inset 0 -2px #af9050}
[data-theme=light] .result{background:linear-gradient(140deg,#fffef7,#ffffff 45%,#eef5f7);border-color:#b9a16a;outline-color:#cbb98a70;box-shadow:0 18px 65px #77909a1c,0 0 45px #ffffffa6}[data-theme=light] .result::before,[data-theme=light] .result::after{background:#fffef9;color:#9f8040}[data-theme=light] .result h2{color:#4e6774}[data-theme=light] .ticket-top span:last-child{color:#697777}[data-theme=light] .sigil{color:#a38745;background:#fffdf7;border-color:#b49a6260;outline-color:#b49a6230;box-shadow:0 0 35px #e9d18a35}[data-theme=light] .sigil::before{border-color:#b49a6250}[data-theme=light] .spell{color:#39586b;text-shadow:0 2px 22px #a6ced433}[data-theme=light] .spell-end{color:#686c5d}[data-theme=light] .recipe-title,[data-theme=light] .result-caption{color:#7d704e}[data-theme=light] dt{color:#6c7776}[data-theme=light] dd{color:#3f5159}[data-theme=light] dd.is-forbidden,[data-theme=light] #spell-state.forbidden-active{color:var(--violet)}
[data-theme=light] .forbidden{border-color:#b5aac6;background:linear-gradient(135deg,#f4f0f8b3,#faf9fd)}[data-theme=light] .forbidden>summary,[data-theme=light] .forbidden legend,[data-theme=light] .ritual-group>summary,[data-theme=light] .craft>summary{color:#695781}[data-theme=light] .forbidden summary small,[data-theme=light] .forbidden-intro,[data-theme=light] .fine-note{color:#796988}[data-theme=light] .forbidden fieldset{border-color:#b3a1c435}[data-theme=light] .forbidden .option{background:#fffdfd;border-color:#c8bdd2;color:#685775}[data-theme=light] .forbidden .option:has(input:checked){background:#ebe4f4;border-color:#8e79a4;color:#594269;box-shadow:inset 0 -2px #8e79a4}[data-theme=light] .shop-example,[data-theme=light] .option:has(input:checked) .shop-example{color:#756780}[data-theme=light] .craft select{background:#fffefd;border-color:#b5aac6;color:var(--ink)}
[data-theme=light] footer{border-color:#b99b5840;color:#756e5b}[data-theme=light] .colophon p{color:#647079}[data-theme=light] #source-list small{color:#796988}[data-theme=light] .theme-switch{background:#ffffff80}[data-theme=light] .theme-switch button[aria-pressed=true]{background:#f3ecd9;color:#6c5429}[data-theme=light] :is(button,a,summary):focus-visible,[data-theme=light] .option:has(input:focus-visible){outline-color:#54788f}
@media(max-width:1000px){.header-tools{gap:18px}.header-tools .volume{display:none}}@media(max-width:480px){header{padding:18px 20px;gap:12px}.brand{font-size:18px;gap:10px}.brand small{font-size:9px;letter-spacing:.04em}.theme-switch button{font-size:12px;padding:5px 8px;min-height:38px}.theme-switch button span{display:none}.header-tools{gap:0}.seal{width:29px;height:34px;font-size:21px}}
