@charset "UTF-8";
:root{color-scheme:light;--ink:#66516d;--muted:#948199;--plum:#8b6496;--line:#b49cbd66;--glass:#fff7ffb8;--gold:#d3c0a2;--shadow:0 15px 42px #6b447016;--serif:"Noto Serif SC","Songti SC","STSong","SimSun",Georgia,serif;--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;color:var(--ink);background:#e6d5ec;font:14px/1.6 var(--sans);padding-bottom:65px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #9e71b9;outline-offset:4px}button:disabled:focus-visible{outline:none}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}[hidden]{display:none!important}button:not(.crystal-cell){touch-action:manipulation}.shell{width:min(1200px,calc(100% - 64px));margin-inline:auto}
.silk-backdrop{position:fixed;z-index:-2;inset:0;background:radial-gradient(ellipse at 76% 6%,#fff2ff99,transparent 45%),radial-gradient(ellipse at 10% 65%,#cbb5dc88,transparent 60%),repeating-linear-gradient(103deg,#ead7ec88 0%,#f9ecf1a8 4%,#cdb8d688 6%,#f3e6f2b8 9%,#e1c9e588 14%,#c6aed088 16%,#e9d6ed88 20%);background-color:#e5d3e8}.silk-backdrop:after{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff8 1px,transparent 1px);background-size:31px 31px;opacity:.36}.constellation{position:fixed;inset:0;z-index:-1;pointer-events:none}.constellation i{position:absolute;left:12%;top:23%;width:4px;height:4px;background:white;box-shadow:0 0 9px 3px #fff8;rotate:45deg;animation:twinkle 5s infinite}.constellation i:nth-child(2){left:87%;top:15%;animation-delay:-2s}.constellation i:nth-child(3){left:64%;top:65%;animation-delay:-1s}.constellation i:nth-child(4){left:31%;top:53%;animation-delay:-4s}.constellation i:nth-child(5){left:96%;top:88%;animation-delay:-3s}.constellation i:nth-child(6){left:8%;top:78%;animation-delay:-1s}.constellation i:nth-child(7){left:45%;top:8%;animation-delay:-2s}.constellation i:nth-child(8){left:75%;top:94%;animation-delay:-4s}
.topbar{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;width:min(1320px,calc(100% - 64px));margin:auto;min-height:78px;border-bottom:1px solid #a68ab23d}.brand-link{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:1px}.brand-link>span:last-child{color:var(--muted)}.mini-diamond{display:inline-block;width:9px;height:9px;rotate:45deg;border:1px solid #a582ae;background:linear-gradient(135deg,#fff,#d5b8df);box-shadow:0 0 0 3px #c4aad127}.nav-separator{opacity:.3;margin-inline:3px}.topbar nav{display:flex;align-items:center;gap:24px}.topbar button{border:0;background:none;font-size:12px;padding:12px 0}.topbar button:hover{color:#85509a}.topbar nav span{font-size:10px;background:#fff5;padding:2px 6px;border-radius:20px;margin-left:2px}
.hero{isolation:isolate;position:relative;width:min(1320px,100%);height:510px;margin:0 auto;overflow:hidden}.hero-aura{position:absolute;inset:0;background:radial-gradient(ellipse at 71% 44%,#fff5e8b8,transparent 41%);z-index:-1}.witch-portrait{position:absolute;height:600px;width:872px;object-fit:contain;max-width:none;right:-40px;top:-45px;mask-image:linear-gradient(to bottom,#000 66%,transparent 90%);-webkit-mask-image:linear-gradient(to bottom,#000 66%,transparent 90%);filter:drop-shadow(0 0 35px #fff4)}.hero-copy{position:relative;z-index:1;width:48%;padding:67px 0 0 max(45px,calc((100% - 1200px)/2));pointer-events:none}.hero-copy>*{pointer-events:auto}.eyebrow{font:10px/1.5 Georgia,serif;letter-spacing:3.5px;color:#987da1}.hero-copy .eyebrow{letter-spacing:5px;font-size:11px}.ornament-line{display:flex;align-items:center;gap:12px;color:#a789b5;width:150px;margin:18px 0 12px;font-size:22px;line-height:1}.ornament-line span{flex:1;height:1px;background:linear-gradient(90deg,transparent,#a186a6)}.ornament-line span:last-child{transform:scaleX(-1)}h1{font:400 56px/1.22 var(--serif);letter-spacing:6px;color:#a18aac;text-shadow:1px 2px 0 #fff8,0 0 25px #fff9}h1 em{font-size:72px;font-style:normal;background:linear-gradient(180deg,#fff8ff 0,#b49ac5 32%,#815496 70%,#e2cde8 98%);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 2px 1px #79578560);letter-spacing:3px}.hero-copy p{font:15px/1.8 var(--serif);letter-spacing:2px;margin-top:17px;color:#8c7297}.hero-start{display:inline-flex;gap:26px;align-items:center;padding:12px 22px;border:1px solid #b999c2;border-radius:3px 18px 3px 18px;background:#fff6ff70;box-shadow:inset 0 0 0 3px #fff5,0 5px 20px #9871a31a;font-size:12px;letter-spacing:2px;margin-top:28px;transition:.2s}.hero-start:hover{background:#fff7;transform:translateY(-2px)}.hero-bottom{position:absolute;bottom:9px;left:0;right:0;text-align:center;font:9px Georgia,serif;letter-spacing:4px;color:#a387ae}
.game-section{position:relative;padding-top:32px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.section-heading h2{font:400 30px/1.3 var(--serif);letter-spacing:3px;margin-top:5px;color:#7d588d}.sample-label{font-size:10px;letter-spacing:2px;padding:5px 12px;border:1px solid #b49bbb60;border-radius:20px;background:#fff3}.plan-tabs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.plan-tab{display:flex;align-items:center;text-align:left;gap:17px;padding:20px 24px;border:1px solid #bba3c080;background:#fff5;box-shadow:inset 0 0 0 3px #fff2;border-radius:6px 22px 6px 22px;transition:background .2s,box-shadow .2s}.plan-tab:hover{background:#fff9}.plan-tab[aria-pressed=true]{border-color:#aa86b8;background:linear-gradient(115deg,#fff7ffeb,#e9d7f0eb);box-shadow:inset 0 0 0 3px #fff7,0 8px 25px #75448616}.plan-numeral{font:italic 34px/1 Georgia,serif;color:#a78ab3;min-width:50px}.plan-tab>span:nth-child(2){display:flex;flex-direction:column;gap:4px}.plan-tab b{font-size:16px;font-weight:500;letter-spacing:1px}.plan-tab small{font-size:11px;color:var(--muted);font-weight:400}.plan-price{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto;white-space:nowrap}.plan-price>b{font:25px/1.2 Georgia,serif;color:#956ca4}.plan-price>b small{margin-left:3px;font-size:11px}.plan-price>small{margin-top:4px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:22px;align-items:start}.glass{border:1px solid #a68aaf66;border-radius:22px;background:linear-gradient(130deg,#fff6ffce,#f0dff3c9);box-shadow:var(--shadow),inset 0 1px 1px #fff;backdrop-filter:blur(12px)}.board-panel{position:relative;overflow:hidden;padding:22px 12px 20px}.board-topline{display:flex;align-items:center;justify-content:space-between;padding-inline:14px;font-size:10px;letter-spacing:1px;color:#9b7ca5}.board-topline>span:first-child:before{content:"";display:inline-block;background:#ac8db9;width:5px;height:5px;border-radius:50%;margin-right:7px}.board-panel h3{text-align:center;font:400 23px/1.4 var(--serif);letter-spacing:2px;margin-top:25px;color:#866092}.board-instruction{text-align:center;font-size:12px;margin:8px 12px 0;color:var(--muted);min-height:20px}.crystal-frame{position:relative;aspect-ratio:960/790;margin:14px -8px -6px;isolation:isolate}.frame-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.board-underlay{position:absolute;left:15.8%;right:10.3%;top:18.9%;bottom:17%;background:radial-gradient(ellipse at 45% 30%,#fff9ff,#ded3e1);box-shadow:0 0 8px #967b9b50}.crystal-grid{position:absolute;left:16.05%;right:10.55%;top:19.1%;bottom:17.2%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));z-index:3;overflow:hidden}.crystal-grid.twelve{grid-template-columns:repeat(4,minmax(0,1fr))}.frame-plaque{position:absolute;z-index:4;top:8.75%;left:32.3%;width:38.5%;height:6.2%;display:flex;align-items:center;justify-content:center;color:#fff7e8;font:clamp(13px,2.2vw,24px)/1 var(--serif);letter-spacing:.3px;background:transparent;text-shadow:0 1px 2px #4f335e}.crystal-cell{min-width:0;min-height:0;position:relative;border:0;border-right:1px solid #a08ba6b3;border-bottom:1px solid #a08ba6b3;background:transparent;display:flex;align-items:center;justify-content:center;padding:3px 0 12px;transition:background .25s,box-shadow .25s;touch-action:manipulation;opacity:1!important}.crystal-cell:nth-child(3n){border-right:0}.crystal-cell:nth-last-child(-n+3){border-bottom:0}.twelve .crystal-cell:nth-child(3n){border-right:1px solid #a08ba6b3}.twelve .crystal-cell:nth-child(4n){border-right:0}.twelve .crystal-cell:nth-last-child(-n+4){border-bottom:0}.crystal-cell img{height:96%;max-width:88%;width:auto;object-fit:contain;pointer-events:none;filter:drop-shadow(0 5px 4px #a088a626);transition:filter .3s,transform .3s}.crystal-cell:not(:disabled):hover{background:#fff8;box-shadow:inset 0 0 20px #fff8}.crystal-cell:not(:disabled):hover img{transform:translateY(-4px);filter:drop-shadow(0 3px 9px #b28bc0)}.crystal-cell .cell-number{position:absolute;bottom:4px;left:0;right:0;text-align:center;font:9px/1 Georgia,serif;letter-spacing:2px;color:#8e7696}.crystal-cell.selected{background:radial-gradient(#bb8cda5c,#e7cbf542);box-shadow:inset 0 0 0 2px #9d73af99}.crystal-cell.selected img{filter:drop-shadow(0 0 6px #8f59b7) hue-rotate(10deg)}.cell-mark{position:absolute;right:9px;top:6px;font-size:13px;color:#845398}.crystal-cell.revealed{background:radial-gradient(#fffdfdba,#dbe1e936)}.crystal-cell.revealed img{filter:drop-shadow(0 0 8px #fff) saturate(.4);opacity:.7;transform:scale(.78) translateY(-5px)}.crystal-cell.cursed{background:radial-gradient(#a270b759,#d2b6e04d)}.crystal-cell.cursed img{filter:hue-rotate(20deg) saturate(1.4) drop-shadow(0 0 8px #9c66c4);opacity:1}.cell-result{position:absolute;bottom:12px;left:2px;right:2px;font:11px/1.1 var(--serif);letter-spacing:2px;color:#6f5d80;text-align:center;text-shadow:0 0 3px white,0 0 3px white}.cursed .cell-result{color:#74468c}.crystal-cell.unopened.cursed{opacity:.65!important}.crystal-cell.flipping img{animation:reveal-crystal .7s ease both}.crystal-cell.flipping:after{content:"✧";position:absolute;left:0;right:0;top:28%;color:#fff;font-size:36px;text-shadow:0 0 20px #ab80d7;animation:reveal-spark .7s ease both;pointer-events:none}.crystal-cell:focus-visible{outline-offset:-4px;z-index:5}.board-feedback{text-align:center;margin:2px 16px 14px;min-height:24px;font-size:13px;color:#94729e}.board-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 16px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:43px;padding:11px 23px;border:1px solid #a587ae;border-radius:4px 15px 4px 15px;background:linear-gradient(110deg,#aa8bb8,#896797);color:#fff9fe;box-shadow:inset 0 0 0 3px #ffffff1c,0 5px 14px #84539324;font-size:12px;letter-spacing:1px;transition:transform .2s,filter .2s}.primary-button:not(:disabled):hover{filter:brightness(1.07);transform:translateY(-1px)}.secondary-button{color:#886395;background:#fff8;box-shadow:inset 0 0 0 3px #d9bbdf20}.privacy-note{text-align:center;font-size:10px;letter-spacing:.3px;color:#a08ba7;margin:16px 12px 0}.session-column{display:grid;gap:18px}.progress-panel{padding:22px 23px}.panel-caption{display:flex;align-items:center;gap:9px}.panel-caption h3{font:400 18px/1.3 var(--serif);letter-spacing:1px}.panel-caption>span:last-child:not(:first-child){margin-left:auto;font-size:10px;color:#a188ab}.session-metrics{display:grid;grid-template-columns:.95fr 1.05fr;margin:24px 0 20px}.session-metrics>div+div{padding-left:20px;border-left:1px solid #b99dc64a}.session-metrics small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);margin-bottom:5px}.session-metrics strong{font:34px/1.3 Georgia,var(--serif);color:#8c639e;white-space:nowrap}.session-metrics em{font:11px var(--sans);font-style:normal;letter-spacing:1px;margin-left:5px;color:var(--muted)}.goal-row{display:flex;justify-content:space-between;font-size:10px;color:#a088a8}.goal-row b{font-weight:400;color:#8e719b}.progress-track{height:5px;border-radius:6px;background:#cebadb70;overflow:hidden;margin-top:9px}.progress-track>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#c4a6d7,#9b73b4);transition:width .8s}.journal-panel{padding:28px 30px;margin-top:24px}.journal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.journal-heading h3{font:400 21px/1.5 var(--serif);letter-spacing:1px;margin-top:4px}.text-button{padding:8px 0;background:none;border:0;border-bottom:1px solid #b59bc3;color:#9b7ba8;font-size:11px;white-space:nowrap}.event-log{list-style:none;padding:0;margin:23px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 35px;max-height:330px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.event-log li{position:relative;display:flex;align-items:baseline;gap:15px;font-size:11px;padding:11px 0;border-top:1px solid #b89dc42e}.event-log time{font:10px Georgia,serif;color:#b39cbb;white-space:nowrap}.event-log b{font-weight:500;color:#91709e}.event-log .empty-log{grid-column:1/-1;color:#b19cba;justify-content:center;padding:22px 0}.event-log .log-text{color:#9d85a7}.rules-section{padding:48px 0 5px}.rules-heading{display:flex;align-items:center;gap:15px;margin-bottom:20px}.rule-ornament{font-size:42px;line-height:1;color:#b191c1;text-shadow:0 0 10px #fff}.rules-heading h2{font:italic 28px/1.3 var(--serif);color:#91689f;letter-spacing:2px}.rules-heading div{display:flex;align-items:baseline;gap:15px}.rules-heading div>span{font:italic 15px Georgia,serif;color:#b097b9}.rules-columns{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.rule-card{padding:26px 28px;border-radius:18px;background:linear-gradient(130deg,#fff4ffba,#eedbf0ad)}.rule-card h3{font:400 19px var(--serif);color:#946d9f;letter-spacing:1px;margin-bottom:16px}.rule-card ol,.rule-card ul{padding-left:18px;margin:0;color:#a183ab;font-size:11px;line-height:2.1}.rule-card li{padding:3px 0 3px 3px}.page-footer{display:flex;align-items:center;justify-content:center;gap:23px;text-align:center;padding:30px 20px 5px;font:12px var(--serif);letter-spacing:2px;color:#a98fb2}.page-footer>span{font-size:21px}.floating-return{position:fixed;z-index:20;left:max(18px,env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom));padding:10px 16px;background:#f8edfaf0;color:#9871a5;border:1px solid #bea3ca;border-radius:25px;font-size:11px;box-shadow:0 3px 16px #7654811a;backdrop-filter:blur(12px);display:flex;align-items:center;gap:10px}.floating-return span{font-size:18px;line-height:1}.toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translate(-50%,10px);background:#765584ef;color:#fff4ff;font-size:12px;padding:12px 22px;border-radius:12px;opacity:0;pointer-events:none;box-shadow:0 6px 30px #57376024;transition:.25s;max-width:calc(100% - 40px);width:max-content;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
dialog{width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;border:1px solid #ae8ebe;border-radius:22px;background:linear-gradient(140deg,#fff8ff,#e9d6f0);color:var(--ink);padding:24px 28px;box-shadow:0 30px 100px #42245355}dialog::backdrop{background:#47374f65;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.dialog-head .eyebrow{font-size:9px;letter-spacing:2px}.dialog-head button{border:1px solid #ba9dc959;background:#fff4;border-radius:50%;width:30px;height:30px;font-size:20px;color:#9b77ac}.dialog-title{font:400 27px/1.4 var(--serif);color:#896397;letter-spacing:2px}.dialog-copy{font-size:12px;color:#a086aa;line-height:2;margin-top:12px}.dialog-actions{display:flex;gap:10px;justify-content:center;margin-top:24px}.dialog-body-list{padding-left:18px;font-size:12px;line-height:2;color:#987da2}.result-orb{height:105px;width:auto;margin:0 auto 12px;filter:drop-shadow(0 0 20px #fff)}.result-title{text-align:center}.result-title small{display:block;font-size:10px;letter-spacing:3px;color:#b199bc;margin-bottom:8px}.result-summary{display:grid;grid-template-columns:1fr 1fr;margin-top:20px;border-block:1px solid #bca2c94f;padding:18px 0}.result-summary div{text-align:center}.result-summary small{display:block;font-size:10px;color:#a68caf}.result-summary b{font:27px/1.6 Georgia,serif;color:#8d669c}.result-summary em{font:11px var(--sans);font-style:normal;color:#ac91b4;margin-left:3px}.result-map{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:20px auto 5px;max-width:280px}.result-map.twelve{grid-template-columns:repeat(4,1fr)}.result-map span{padding:8px 0;text-align:center;border:1px solid #b9a0c24a;border-radius:5px;background:#fff5;color:#a893b4;font-size:10px}.result-map span.curse{background:#cbb0dc70;color:#8e64a6;border-color:#b596c6}.result-map span.chosen{box-shadow:inset 0 0 0 1px #a583b6}.map-legend{font-size:10px;color:#aa90b4;text-align:center}.history-list{list-style:none;padding:0;margin:15px 0}.history-list li{display:flex;align-items:center;gap:12px;border-top:1px solid #bda5c64d;padding:14px 0}.history-list li>span{flex:1}.history-list strong{display:block;font:16px var(--serif);color:#9472a2}.history-list small{font-size:10px;color:#ad95b7}.history-list button{border:1px solid #bfa6ca7a;background:#fff6;padding:6px 10px;border-radius:7px;font-size:11px}.dialog-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.dialog-rule-grid div{border:1px solid #c6b0cf70;background:#fff4;border-radius:9px;padding:14px 11px;text-align:center}.dialog-rule-grid b{display:block;font:18px var(--serif);color:#956fa5}.dialog-rule-grid span{display:block;font-size:10px;margin-top:7px;color:#a78caf}.dialog-empty{text-align:center;color:#ab93b6;padding:40px 0;font-size:12px}
@keyframes twinkle{0%,100%{opacity:.15;scale:.5}50%{opacity:.8;scale:1.2}}@keyframes reveal-crystal{0%{transform:scale(1);filter:brightness(1)}42%{transform:scale(.5) rotateY(90deg);filter:brightness(1.6)}72%{transform:scale(.87) rotateY(0);filter:brightness(1.8)}100%{transform:scale(.78) translateY(-5px)}}@keyframes reveal-spark{0%{opacity:0;transform:scale(.2)}55%{opacity:1;transform:scale(1.8) rotate(30deg)}100%{opacity:0;transform:scale(2.2) rotate(80deg)}}
@media(min-width:1500px){.hero{height:540px}.hero-copy{padding-top:80px}.witch-portrait{height:630px;width:915px;right:-40px}}
@media(max-width:1050px){.shell{width:calc(100% - 40px)}.play-layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.progress-panel{padding:20px 18px}.hero-copy{padding-left:35px}.witch-portrait{right:-150px}.hero-copy h1{font-size:49px}.hero-copy h1 em{font-size:65px}.board-panel h3{font-size:20px}.board-instruction{font-size:10px}.plan-tab{padding:17px 18px;gap:12px}.plan-numeral{font-size:28px;min-width:40px}.plan-tab b{font-size:14px}.plan-price>b{font-size:23px}.plan-tab small{font-size:10px}.crystal-cell img{height:91%}.cell-result{font-size:9px;letter-spacing:1px;bottom:10px}.board-topline{font-size:9px}.frame-plaque{font-size:17px}}
@media(max-width:800px){.hero{height:470px}.hero-copy{width:52%;padding:58px 0 0 25px}.hero-copy h1{font-size:42px}.hero-copy h1 em{font-size:54px}.hero-copy .eyebrow{font-size:9px;letter-spacing:2px}.hero-copy p{font-size:12px;letter-spacing:1px}.witch-portrait{height:520px;width:756px;right:-198px;top:-10px}.play-layout{grid-template-columns:minmax(0,1fr)}.session-column{grid-template-columns:1fr 1fr;gap:16px}.board-panel{padding-bottom:24px}.board-panel h3{font-size:24px}.board-instruction{font-size:12px}.crystal-frame{max-width:650px;margin:5px auto -6px;width:100%}.frame-plaque{font-size:25px}.crystal-cell img{height:96%}.cell-result{font-size:12px;bottom:13px}.board-topline{font-size:10px}.rules-columns{gap:16px}.rule-card{padding:22px 21px}.journal-panel{padding:24px}.plan-tab{gap:10px;padding:16px}.plan-numeral{font-size:25px;min-width:30px}}
@media(max-width:560px){.shell{width:calc(100% - 28px)}.topbar{width:calc(100% - 32px);min-height:59px;gap:12px}.brand-link{font-size:11px;gap:7px;letter-spacing:.3px}.brand-link .nav-separator,.brand-link>span:last-child{display:none}.topbar nav{gap:15px}.topbar button{font-size:10px}.topbar nav span{padding:2px 4px;font-size:9px}.mini-diamond{width:7px;height:7px}.hero{height:500px}.witch-portrait{height:460px;width:668px;right:50%;transform:translateX(50%);top:-15px;mask-image:linear-gradient(to bottom,#000 55%,transparent 97%);-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 97%)}.hero-aura{background:radial-gradient(ellipse at 50% 25%,#fff3f590,transparent 70%)}.hero-copy{width:100%;padding:265px 16px 0;text-align:center;background:linear-gradient(to bottom,transparent 55%,#e8d4e877 76%,transparent)}.hero-copy .eyebrow{font-size:8px;letter-spacing:4px;text-shadow:0 0 10px #fff}.ornament-line{display:none}.hero-copy h1{font-size:27px;line-height:1.2;letter-spacing:3px;margin-top:8px}.hero-copy h1 br{display:none}.hero-copy h1 em{font-size:43px;letter-spacing:2px;margin-left:5px}.hero-copy p{font-size:11px;letter-spacing:2px;margin-top:12px}.hero-start{margin-top:18px;min-height:40px;font-size:11px;padding:10px 22px}.hero-bottom{font-size:7px;letter-spacing:2px;bottom:11px}.game-section{padding-top:15px}.section-heading{margin-bottom:17px}.section-heading .eyebrow{font-size:8px;letter-spacing:2px}.section-heading h2{font-size:25px;letter-spacing:2px}.sample-label{font-size:8px;padding:4px 8px;letter-spacing:1px}.plan-tabs{gap:9px;margin-bottom:14px}.plan-tab{padding:12px 10px;gap:8px;border-radius:5px 15px 5px 15px;flex-wrap:wrap}.plan-numeral{font-size:21px;min-width:25px}.plan-tab>span:nth-child(2){gap:2px;flex:1}.plan-tab b{font-size:12px;letter-spacing:0}.plan-tab small{font-size:8px}.plan-price{flex-direction:row;gap:6px;align-items:baseline;margin-left:33px;width:100%}.plan-price>b{font-size:20px}.plan-price>b small{font-size:9px}.plan-price>small{font-size:9px}.play-layout{gap:14px}.glass{border-radius:18px}.board-panel{padding:18px 0 20px}.board-topline{font-size:8px;padding-inline:17px;letter-spacing:.5px}.board-panel h3{font-size:20px;margin-top:19px;letter-spacing:1px}.board-instruction{font-size:10px;margin:7px 14px 0;line-height:1.8;min-height:36px}.crystal-frame{width:calc(100% + 8px);max-width:none;margin:-3px -4px -2px}.frame-plaque{font-size:clamp(10px,3.6vw,19px)}.crystal-cell{padding-bottom:8px}.crystal-cell img{height:96%;max-width:88%}.crystal-cell .cell-number{font-size:7px;bottom:3px;letter-spacing:1px}.cell-mark{font-size:10px;right:6px;top:3px}.cell-result{font-size:9px;letter-spacing:0;bottom:8px}.twelve .cell-result{font-size:8px}.board-feedback{font-size:11px;margin:4px 12px 12px;min-height:20px}.primary-button,.secondary-button{min-height:42px;padding:10px 19px;font-size:11px}.board-actions{gap:8px;margin-inline:12px}.privacy-note{font-size:9px;margin-top:13px}.session-column{grid-template-columns:1fr;gap:14px}.progress-panel{padding:20px}.panel-caption h3{font-size:18px}.session-metrics{margin:18px 0 14px}.session-metrics strong{font-size:35px}.session-metrics>div+div{padding-left:25px}.journal-panel{padding:21px 18px;margin-top:15px}.journal-heading{align-items:flex-start;gap:10px}.journal-heading .eyebrow{font-size:8px;letter-spacing:2px}.journal-heading h3{font-size:17px;letter-spacing:.3px;max-width:200px}.text-button{font-size:9px;margin-top:4px}.event-log{grid-template-columns:1fr;margin-top:15px;max-height:280px}.event-log li{font-size:10px;gap:12px;line-height:1.8;padding:10px 0}.event-log time{font-size:9px}.rules-section{padding-top:32px}.rules-heading{gap:10px;margin-bottom:15px}.rules-heading h2{font-size:24px}.rules-heading div{gap:10px}.rules-heading div>span{font-size:12px}.rule-ornament{font-size:34px}.rules-columns{grid-template-columns:1fr;gap:13px}.rule-card{padding:22px}.rule-card h3{font-size:18px}.rule-card ol,.rule-card ul{font-size:11px;line-height:2}.page-footer{font-size:10px;gap:12px;letter-spacing:1px;padding-top:25px}.floating-return{font-size:10px;left:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:9px 12px;gap:8px;background:#f8eefbf2}.toast{font-size:11px;bottom:85px}dialog{padding:20px;max-height:calc(100dvh - 32px)}.dialog-title{font-size:24px}.dialog-actions{gap:8px;flex-wrap:wrap}.dialog-actions button{flex:1;white-space:nowrap}.dialog-rule-grid div{padding:14px 7px}.dialog-rule-grid b{font-size:16px}}
@media(max-width:350px){.shell{width:calc(100% - 20px)}.hero{height:460px}.hero-copy{padding-top:250px}.hero-copy h1{font-size:24px}.hero-copy h1 em{font-size:36px}.witch-portrait{height:420px;width:610px}.topbar nav{gap:11px}.plan-tab{gap:5px;padding:10px 8px}.plan-numeral{font-size:19px;min-width:20px}.plan-tab b{font-size:11px}.plan-tab small{font-size:7px}.plan-price{margin-left:25px}.board-panel h3{font-size:18px}.board-instruction{font-size:9px}.cell-result{font-size:8px}.journal-heading h3{font-size:16px}.frame-plaque{font-size:11px}}
.crystal-cell.revealed:not(.unopened){box-shadow:inset 0 0 0 1px #9e7daf80}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Game-code entry and the two sides of the crystal ritual. */
.code-gate{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:36px 42px;margin-bottom:24px}.code-introduction h3{font:400 27px/1.5 var(--serif);color:#896397;letter-spacing:1px;margin:8px 0}.code-introduction>p{font:13px var(--serif);letter-spacing:2px;color:#a084aa}.code-steps{list-style:none;margin:25px 0 0;padding:0;display:grid;gap:12px}.code-steps li{display:flex;gap:13px;align-items:center;font-size:11px;color:#9b80a6}.code-steps span{font:italic 17px Georgia,serif;color:#b498c0}.code-form{min-width:0;align-self:center}.role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:20px}.role-tabs button{text-align:left;min-height:65px;padding:12px 17px;border:1px solid #c5accf85;background:#fff4;border-radius:5px 15px 5px 15px;transition:.2s}.role-tabs b{display:block;font:16px/1.4 var(--serif);letter-spacing:1px}.role-tabs small{display:block;font-size:10px;color:#ae92b9;margin-top:3px}.role-tabs button[aria-pressed=true]{background:linear-gradient(125deg,#fff7ff,#dfc9e9);border-color:#b18bbf;box-shadow:inset 0 0 0 3px #fff4}.code-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.code-label-row label{font-size:12px;letter-spacing:2px}.code-label-row .text-button{font-size:10px;padding:3px 0}.code-form>input{width:100%;min-width:0;min-height:49px;padding:11px 16px;border:1px solid #b99cc7;border-radius:8px;background:#fff8;color:#8e619f;font:21px/1.3 Georgia,var(--sans);letter-spacing:3px;text-transform:uppercase}.code-form>input::placeholder{font:11px var(--sans);letter-spacing:1px;color:#b29cbb}.code-form>input[aria-invalid=true]{border-color:#b47f9d}.code-message{font-size:10px;color:#a68aad;min-height:20px;margin:9px 0 12px;line-height:1.8}.code-message.error{color:#a75f84}.code-submit{width:100%;min-height:45px}.room-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;margin-bottom:18px;border-radius:13px}.room-identity{display:flex;align-items:center;gap:12px;min-width:0;font-size:11px;flex-wrap:wrap}.room-role{font-size:10px;padding:4px 9px;border:1px solid #c6adcf80;border-radius:5px;background:#fff4;color:#a181b1}.room-identity b,.inline-game-code{font:600 15px Georgia,serif;letter-spacing:2px;color:#956aa6;user-select:all}.room-identity b{margin-left:6px;overflow-wrap:anywhere}.room-strip button{background:none;border:0;border-bottom:1px solid #bfa2cb70;padding:4px 0;font-size:10px;color:#a184ae;white-space:nowrap}.room-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.room-controls>span{font-size:10px;color:#af95b9}.destiny-panel{padding:26px 26px 22px;text-align:center}.destiny-panel>.eyebrow{font-size:9px;letter-spacing:2px}.destiny-panel>img{height:100px;width:auto;margin:14px auto;filter:drop-shadow(0 0 12px #fff)}.destiny-panel h3{font:400 20px/1.4 var(--serif);letter-spacing:1px;color:#9771a4}.destiny-panel>p{font-size:11px;color:#a68bb1;line-height:1.9;margin:12px 0 24px}.destiny-rule{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #c4a9ce44;padding:11px 0;font-size:10px;color:#a58baf}.destiny-rule b{font-weight:400;color:#94729f}.destiny-rule:last-child{padding-bottom:0}.direct-play-hint{font-size:10px;color:#a38aaf;margin-top:14px}.plan-tab:disabled{opacity:.76}.plan-tab:disabled:hover{background:#fff5}.plan-tab:disabled[aria-pressed=true]{background:linear-gradient(115deg,#fff7ffeb,#e9d7f0eb)}
@media(max-width:1050px){.code-gate{padding:30px;gap:35px}.code-introduction h3{font-size:24px}.room-controls{gap:12px}.room-controls>span{display:none}}
@media(max-width:800px){.code-gate{gap:25px;padding:28px}.code-introduction h3{font-size:22px}.room-strip{padding:15px 18px}.room-controls{gap:10px}.destiny-panel>img{height:90px}.destiny-panel{padding:23px}}
@media(max-width:560px){.code-gate{grid-template-columns:1fr;gap:24px;padding:24px 21px;margin-bottom:14px}.code-introduction .eyebrow{font-size:8px;letter-spacing:2px}.code-introduction h3{font-size:23px;letter-spacing:0}.code-introduction>p{font-size:11px;letter-spacing:1px}.code-steps{margin-top:17px;gap:8px}.code-steps li{font-size:10px}.code-steps span{font-size:15px}.role-tabs{margin-bottom:17px}.role-tabs button{padding:11px 13px;min-height:62px}.role-tabs b{font-size:16px}.role-tabs small{font-size:9px}.code-label-row label{font-size:11px}.code-form>input{font-size:20px;min-height:48px}.code-form>input::placeholder{font-size:10px}.code-message{font-size:10px;line-height:1.9;margin-bottom:12px}.code-submit{font-size:11px}.room-strip{padding:14px 16px;flex-direction:column;align-items:stretch;gap:11px;margin-bottom:14px}.room-identity{gap:10px;font-size:10px}.room-role{font-size:9px}.room-identity b{font-size:15px}.room-controls{border-top:1px solid #bda2c645;padding-top:8px;gap:17px}.room-controls>span{display:inline;font-size:9px;margin-right:auto}.room-strip button{font-size:9px}.destiny-panel{padding:23px}.destiny-panel>img{height:85px}.destiny-panel h3{font-size:19px}.destiny-panel>p{font-size:11px;margin-bottom:17px}.direct-play-hint{font-size:10px}.room-strip .room-controls{justify-content:flex-end}}
@media(max-width:350px){.code-gate{padding:21px 17px}.code-introduction h3{font-size:21px}.room-controls{gap:10px}.room-controls>span{font-size:8px}.room-identity{gap:8px}}
