:root{--ink:#f6ead6;--ink-dim:#f6ead69e;--gold:#f2c77c;--serif:"Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:"Avenir Next", "Helvetica Neue", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:#120c07;margin:0;overflow:hidden}#view{outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;transition:opacity .6s;position:fixed;inset:0}#ui.hidden{opacity:0}.loading{background:radial-gradient(120% 90% at 50% 60%,#2a1a0e 0%,#120c07 70%);flex-direction:column;justify-content:center;align-items:center;gap:26px;transition:opacity 1.6s;display:flex;position:absolute;inset:0}.loading.done{opacity:0}.loading .sigil{opacity:.9;width:54px;height:54px;animation:9s linear infinite turn}.loading .bar{background:#f6ead629;width:180px;height:1px;overflow:hidden}.loading .bar i{background:var(--gold);transform-origin:0;width:100%;height:100%;transition:transform .35s;display:block;transform:scaleX(0)}.loading .label{letter-spacing:.42em;text-transform:uppercase;color:var(--ink-dim);padding-left:.42em;font-size:10px}@keyframes turn{to{transform:rotate(360deg)}}.title{text-align:center;opacity:0;text-shadow:0 2px 30px #2812008c;transition:opacity 2.4s;position:absolute;top:17%;left:0;right:0}.title.show{opacity:1}.title h1{font-family:var(--serif);letter-spacing:.34em;margin:0;padding-left:.34em;font-size:clamp(44px,7.2vw,104px);font-weight:400;line-height:1}.title p{letter-spacing:.5em;text-transform:uppercase;color:var(--ink-dim);margin:20px 0 0;padding-left:.5em;font-size:11px}.title .rule{background:linear-gradient(90deg, transparent, var(--gold), transparent);width:64px;height:1px;margin:26px auto 0}.begin{text-align:center;letter-spacing:.46em;text-transform:uppercase;color:var(--ink);opacity:0;text-shadow:0 1px 14px #281200b3;padding-left:.46em;font-size:11px;transition:opacity 1.2s;position:absolute;bottom:6.5%;left:0;right:0}.begin.show{opacity:.9;animation:3.2s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.45}}.hints{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);opacity:0;text-shadow:0 1px 10px #1e0e00cc;grid-template-columns:auto auto;align-items:center;gap:7px 16px;font-size:10px;transition:opacity 1.4s;display:grid;position:absolute;bottom:30px;left:34px}.hints.show{opacity:1}.hints kbd,.prompt kbd{font-family:var(--sans);letter-spacing:.14em;text-align:center;min-width:22px;color:var(--ink);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#140a0238;border:1px solid #f6ead661;border-radius:3px;padding:3px 7px 2px;font-size:9.5px}.hints .keys{justify-content:flex-end;gap:4px;display:flex}.shards{opacity:0;gap:16px;transition:opacity 1.4s;display:flex;position:absolute;top:30px;left:50%;transform:translate(-50%)}.shards.show{opacity:1}.shards i{border:1px solid #f6ead68c;width:9px;height:9px;transition:background 1.2s,box-shadow 1.2s,border-color 1.2s;transform:rotate(45deg)}.shards i.lit{background:var(--gold);border-color:var(--gold);box-shadow:0 0 14px 2px #f2c77cbf}.prompt{letter-spacing:.34em;text-transform:uppercase;opacity:0;text-shadow:0 1px 12px #1e0e00d9;align-items:center;gap:12px;font-size:11px;transition:opacity .5s,transform .5s;display:flex;position:absolute;bottom:19%;left:50%;transform:translate(-50%,8px)}.prompt.show{opacity:1;transform:translate(-50%)}.verse{text-align:center;font-family:var(--serif);letter-spacing:.06em;opacity:0;text-shadow:0 2px 22px #1e0e00bf;font-size:clamp(20px,2.3vw,32px);font-style:italic;transition:opacity 2s;position:absolute;top:22%;left:0;right:0}.verse.show{opacity:.95}.photo{text-align:right;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);opacity:0;text-shadow:0 1px 10px #1e0e00cc;font-size:10px;line-height:2.1;transition:opacity .8s;position:absolute;bottom:30px;right:34px}.photo.show{opacity:1}.photo b{color:var(--ink);font-weight:500}.flash{opacity:0;background:#fff;transition:opacity .5s ease-out;position:absolute;inset:0}.flash.on{opacity:.55;transition:none}.settings{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);opacity:0;pointer-events:none;align-items:center;gap:4px;font-size:9.5px;transition:opacity .8s;display:flex;position:absolute;top:30px;right:34px}.settings.show{opacity:1;pointer-events:auto}.settings span{margin-right:10px}.settings button{all:unset;cursor:pointer;color:var(--ink-dim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#140a0240;border:1px solid #f6ead633;border-radius:3px;padding:5px 9px 4px;transition:color .2s,border-color .2s}.settings button:hover{color:var(--ink);border-color:#f6ead680}.settings button.on{color:#1a120b;background:var(--gold);border-color:var(--gold)}.error{text-align:center;font-family:var(--serif);background:#120c07;justify-content:center;align-items:center;padding:40px;font-size:22px;line-height:1.5;display:flex;position:absolute;inset:0}
