:root{--bg:#101c1b;--panel:#192625;--gold:#d6b779;--gold2:#9f885b;--ink:#efe9db;--muted:#a6afaa;--line:#394440;--red:#f2b3a2;--cream:#e3c58c;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 70%,#21342d55,transparent 60%),var(--bg);min-height:100vh}button,input{font:inherit}button,a,input{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}[hidden]{display:none!important}.topbar{max-width:1440px;margin:auto;padding:34px 60px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #9f885b26}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;font-family:Georgia,serif;letter-spacing:2px;font-size:19px}.brand small{display:block;font:8px Arial,sans-serif;letter-spacing:2px;color:var(--muted);margin-top:8px}.crest{width:43px;height:49px;border:1px solid var(--gold2);border-radius:18px 18px 24px 24px;display:grid;place-items:center;color:var(--gold);font-size:30px}.top-right{display:flex;gap:22px;align-items:center}.private{font-size:12px;color:var(--gold);letter-spacing:.3px}.entrance{max-width:1280px;margin:0 auto;padding:68px 42px 54px;display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);display:flex;align-items:center;gap:12px}.eyebrow span{width:30px;height:1px;background:var(--gold2)}h1{font:normal 54px/1.12 Georgia,serif;letter-spacing:-1px;margin:27px 0 22px}h1 em{font-weight:normal;color:var(--gold)}.lead{font-size:15px;line-height:1.9;color:var(--muted)}.castle-wrap{position:relative;margin-top:25px;max-width:525px}.castle{width:100%;display:block;height:240px;object-fit:contain;object-position:left}.castle-note{position:absolute;bottom:8px;left:21%;font-size:8px;letter-spacing:3px;color:var(--gold2)}.story-bottom{font-size:11px;color:var(--muted);margin-top:21px;display:flex;gap:13px;align-items:center}.story-bottom span{font-size:20px;color:var(--gold)}.door{position:relative;background:linear-gradient(140deg,#23302d,#172321);border:1px solid #bfa37046;border-radius:3px;padding:35px 38px 24px;box-shadow:0 24px 80px #0003;max-width:480px;width:100%;min-height:470px}.corner{position:absolute;width:22px;height:22px;border-color:var(--gold2);border-style:solid}.corner-tl{top:9px;left:9px;border-width:1px 0 0 1px}.corner-br{bottom:9px;right:9px;border-width:0 1px 1px 0}.seal{margin:0 auto 20px;width:46px;height:46px;border:1px solid #9f885b66;border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:28px}h2{font:normal 28px/1.2 Georgia,serif;margin:0 0 13px;color:var(--ink)}.door h2,.door .intro{text-align:center}.intro,.muted{color:var(--muted);font-size:13px;line-height:1.65;margin:0 0 23px}.label{font-size:11px;letter-spacing:.4px;color:#ced3cd;display:block;margin:20px 0 9px}.people{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 20px}.person{border:1px solid var(--line);display:flex;align-items:center;gap:9px;border-radius:3px;padding:13px 14px;font-size:13px;cursor:pointer}.person:has(input:checked){border-color:var(--gold);background:#d6b7790a;color:var(--gold)}input[type=radio]{accent-color:var(--gold);width:15px;height:15px;margin:0}input:not([type=radio]):not([type=checkbox]){display:block;background:#0e1918a6;border:1px solid #44514b;border-radius:3px;padding:13px 14px;color:var(--ink);width:100%;outline:none;font-size:15px}input:focus{border-color:var(--gold)!important;box-shadow:0 0 0 2px #d6b7791c}input::placeholder{color:#7c8983}.primary{width:100%;background:var(--cream);color:#1e2923;border:1px solid var(--cream);padding:14px 15px;border-radius:3px;font-size:13px;font-weight:600;margin-top:22px;transition:background .2s}.primary:hover{background:#f0d8a6}.text-button{background:none;border:0;color:var(--gold);font-size:12px;line-height:1.5;padding:9px 0}.action-row{display:flex;justify-content:space-between;gap:20px;margin-top:13px;align-items:center}.quiet{color:var(--muted);background:none;border:1px solid var(--line);padding:8px 12px;border-radius:3px;font-size:12px}.door-footer{border-top:1px solid #a89b7126;padding-top:17px;margin-top:22px;color:#7e8c83;text-align:center;font-size:10px;letter-spacing:.7px}.message{color:var(--red);font-size:12px;line-height:1.7;margin:15px 0 0}.message:empty{display:none}.hint{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0 0}.step{font-size:10px;color:var(--gold);letter-spacing:2px;text-align:center;margin-bottom:13px}.qr{display:block;width:210px;height:210px;margin:15px auto;border:10px solid white;background:white}.secret{word-break:break-all;font:12px monospace;padding:12px;background:#0c1614;border-radius:3px}.recovery{display:grid;gap:8px;padding:14px;background:#0c1614;border:1px solid var(--line);font:12px monospace;color:var(--cream);max-height:220px;overflow:auto;user-select:all}.ack{display:flex;gap:9px;align-items:flex-start;margin-top:16px;color:var(--muted);font-size:12px;line-height:1.5}.ack input{accent-color:var(--gold);margin-top:3px}.footer{max-width:1320px;padding:25px 60px;margin:auto;display:flex;justify-content:space-between;gap:25px;color:#687971;border-top:1px solid #9f885b26;font-size:10px;letter-spacing:.4px}.footer span:first-child{letter-spacing:2px}.home{display:block;padding-top:52px}.home-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:35px}.home-intro h1{font-size:46px;margin-bottom:12px}.home-intro p{color:var(--muted);font-size:14px}.date{font:italic 14px Georgia,serif;color:var(--gold);padding-bottom:13px}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.service{position:relative;display:flex;flex-direction:column;text-decoration:none;border:1px solid #bfa37038;border-radius:4px;background:linear-gradient(130deg,#24342f,#172321);padding:29px;min-height:248px;transition:transform .2s,border-color .2s}.service:hover{transform:translateY(-3px);border-color:#d6b77999}.service:nth-child(2){background:linear-gradient(130deg,#292f35,#172321)}.service:nth-child(3){background:linear-gradient(130deg,#1c3437,#172321)}.service:nth-child(4){background:linear-gradient(130deg,#34322a,#172321)}.card-top{display:flex;align-items:center;gap:16px}.glyph{font-size:28px;color:var(--gold);width:48px;height:48px;border:1px solid #d6b77938;border-radius:50%;display:grid;place-items:center}.card-tag{font-size:9px;color:var(--gold2);letter-spacing:1.8px;margin-bottom:9px}.service h2{font-size:27px;margin:0}.service p{color:var(--muted);font-size:13px;line-height:1.8;max-width:360px}.card-link{font-size:12px;color:var(--gold);margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px solid #d6b77920}.home-note{display:flex;gap:13px;align-items:center;padding:22px 0;color:var(--muted);font-size:11px;line-height:1.6}.home-note span{font-size:21px;color:var(--gold)}details{font-size:11px;color:var(--muted);line-height:1.6;margin-top:15px}summary{cursor:pointer;color:var(--gold)}.loading{opacity:.65;pointer-events:none}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
@media(min-width:1500px){.entrance{padding-top:95px;padding-bottom:85px;gap:105px}.castle{height:280px}}
@media(max-width:1000px){.topbar{padding:26px 30px}.entrance{padding:40px 30px;gap:35px}h1{font-size:42px}.door{padding:30px 25px}.castle{height:200px}.brand small{letter-spacing:1px}}
@media(max-width:720px){.topbar{padding:20px}.brand{font-size:15px;gap:10px}.brand small{display:none}.crest{width:34px;height:39px;font-size:24px}.private{font-size:10px}.top-right{gap:8px}.entrance{display:flex;flex-direction:column;padding:32px 20px;gap:26px}.story{width:100%}.eyebrow{font-size:8px;letter-spacing:2px}h1{font-size:37px;margin:20px 0 13px}.lead{font-size:13px}.castle-wrap,.story-bottom{display:none}.door{max-width:100%;min-height:0;padding:26px 24px 20px}.seal{margin-bottom:17px}.footer{padding:21px 20px;font-size:9px;flex-wrap:wrap;gap:12px}.footer span:last-child{display:none}.home{display:block}.home-intro{display:block;margin-bottom:24px}.home-intro h1{font-size:35px}.date{font-size:12px}.card-grid{grid-template-columns:1fr;gap:15px}.service{padding:24px;min-height:220px}.service h2{font-size:25px}.home-note{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
