:root{font-family:"Noto Serif SC",Microsoft YaHei,serif;color:#f6f0e6;background:#100b1d;font-synthesis:none}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 70% 5%,#3a255b 0%,transparent 26rem),radial-gradient(circle at 15% 55%,#1c3a56 0%,transparent 34rem),#100b1d}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #e4c57d;outline-offset:3px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.logout-button{color:#eab6b8}.topbar{width:min(1180px,calc(100% - 40px));min-height:74px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #ffffff1a}.brand{border:0;background:none;color:#f9e6ac;font-weight:700;letter-spacing:.1em;font-size:1.05rem;white-space:nowrap}.brand span{color:#dcb667;font-size:1.4em}nav{display:flex;gap:2px;overflow-x:auto}nav button{border:0;background:transparent;padding:10px 12px;color:#c6bdcf;white-space:nowrap;border-radius:7px}nav button:hover,nav .nav-active{color:#fff3cb;background:#ffffff12}.page-wrap{width:min(1180px,calc(100% - 40px));margin:0 auto;flex:1;padding:54px 0 66px}footer{width:min(1180px,calc(100% - 40px));color:#a69cae;padding:20px 0 30px;border-top:1px solid #ffffff12;font-size:.78rem;margin:auto}.panel{background:linear-gradient(145deg,#ffffff12,#ffffff08);border:1px solid #ffffff1c;border-radius:17px;box-shadow:0 18px 50px #00000025}.page-heading{max-width:690px;margin-bottom:28px}.page-heading.centered,.centered{text-align:center;margin-left:auto;margin-right:auto}.page-heading h1,.hero h1{margin:6px 0 12px;font-size:clamp(2rem,5vw,3.45rem);line-height:1.14;letter-spacing:-.045em}.page-heading p,.hero p{color:#c8c0ca;line-height:1.8}.eyebrow{color:#dcb667!important;font-size:.72rem;font-family:system-ui,sans-serif;letter-spacing:.18em;font-weight:700;margin:0}.hero{position:relative;overflow:hidden;padding:clamp(38px,8vw,84px);background:linear-gradient(120deg,#3c265caa,#182c4aa8),url(/cards/card-placeholder.svg) right 10% center / 250px auto no-repeat}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 70% 50%,#efcf813b,transparent 18rem);pointer-events:none}.hero>*{position:relative;z-index:1}.hero h1 em{font-style:normal;color:#f2ce77}.hero p{max-width:550px}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}.actions.centered{justify-content:center}.primary,.secondary,.file-button{border:1px solid transparent;border-radius:9px;padding:10px 17px;font-weight:700;transition:transform .18s,background .18s}.primary{color:#1c1427;background:linear-gradient(135deg,#f2d186,#c99c4a)}.primary:hover{transform:translateY(-2px);background:#f5daa0}.secondary,.file-button{color:#e7dcce;border-color:#ffffff31;background:#ffffff0d}.secondary:hover,.file-button:hover{background:#ffffff1b}.wide{width:100%;margin-top:15px}.text-danger{border:0;background:transparent;color:#eaa9ad;padding:8px}.disclaimer{margin:36px auto 0;max-width:750px;text-align:center;color:#afa5b2;font-size:.83rem;line-height:1.7}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.feature{text-align:left;padding:24px;color:inherit;cursor:pointer;transition:transform .2s,border-color .2s}.feature:hover{transform:translateY(-3px);border-color:#d5b86991}.feature>span{color:#e2bf71;font-size:1.45rem}.feature h2{margin:14px 0 7px;font-size:1.1rem}.feature p{color:#bdb4c3;line-height:1.65;font-size:.9rem;margin:0}.chips{display:flex;gap:9px;overflow-x:auto;margin:-6px 0 23px;padding:6px 0}.chips button{white-space:nowrap;background:transparent;color:#c9c0cc;border:1px solid #ffffff24;border-radius:99px;padding:7px 13px}.chips .chip-active{color:#1c1427;background:#e0bc70;border-color:#e0bc70}.spread-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.spread-card{padding:17px;display:flex;flex-direction:column}.spread-card-top{display:flex;justify-content:space-between;align-items:center}.icon-button{color:#e9c778;background:none;border:0;font-size:1.35rem}.tag{color:#dfbd73;font-size:.72rem;letter-spacing:.06em;border:1px solid #d6b36b57;padding:3px 7px;border-radius:99px;display:inline-block}.spread-card h2{font-size:1.08rem;margin:14px 0 6px}.spread-card p{color:#d1c7d3;font-size:.88rem;margin:0 0 8px;line-height:1.55}.spread-card small{color:#a99fad;line-height:1.5;flex:1}.spread-canvas{position:relative;height:370px;margin:14px 0;background:radial-gradient(ellipse,#e4c37b10,transparent 58%);border:1px dashed #ffffff1c;border-radius:13px}.spread-canvas.compact{height:180px;margin:8px 0}.spread-slot{position:absolute;text-align:center;color:#d7cfd6;font-size:.68rem;width:96px}.spread-slot>span{display:block;margin-top:4px;transform:rotate(var(--inverse-rotation, 0))}.spread-slot .tarot-card{margin:auto}.tarot-card{width:132px;height:208px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;color:#f7eddb;background:#201733;border:1px solid #d8b96eaa;border-radius:9px;padding:8px;box-shadow:0 8px 18px #0000004d;transition:transform .25s,box-shadow .25s}.tarot-card:not(:disabled):hover{transform:translateY(-5px) rotate(-1deg);box-shadow:0 15px 24px #00000073}.tarot-card.small-card{width:62px;height:100px;padding:4px;border-radius:6px}.tarot-card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.92}.tarot-card .card-number{position:absolute;top:7px;left:8px;z-index:1;font-size:.72rem}.tarot-card .card-name,.tarot-card .card-en{z-index:1;text-shadow:0 1px 5px #000}.tarot-card .card-name{font-size:.9rem;font-weight:700}.tarot-card .card-en{font-size:.56rem;margin-top:2px;text-align:center}.small-card .card-number{top:3px;left:4px;font-size:.52rem}.small-card .card-name{font-size:.55rem}.small-card .card-en{display:none}.tarot-card.reversed{transform:rotate(180deg)}.tarot-card.reversed:not(:disabled):hover{transform:translateY(-5px) rotate(179deg)}.face-down{background:linear-gradient(135deg,#211837,#141d3b);justify-content:center}.face-down:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid #caa557;border-radius:inherit}.card-back-symbol{color:#e5c071;font-size:3.4rem;line-height:1}.small-card .card-back-symbol{font-size:1.7rem}.card-back-label{z-index:1;color:#ebddba;font-size:.7rem;margin-top:8px}.two-column{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);gap:25px;align-items:start}.field-label,.editor-form label{color:#e7d7b2;display:block;font-size:.88rem;margin:18px 0 7px}textarea,input,select{width:100%;color:#f6eff2;background:#09071359;border:1px solid #ffffff2b;border-radius:9px;padding:11px 12px;resize:vertical}textarea::placeholder,input::placeholder{color:#a69ba9}.hint-row{display:flex;justify-content:space-between;gap:12px;color:#a99fab;margin-top:7px;font-size:.75rem}.intake-note{margin:15px 0 18px;padding:13px 15px;color:#d8ceda;font-size:.87rem;line-height:1.75;border:1px solid #e4be6c55;border-radius:10px;background:#e4be6c10}.intake-note b,.spread-card-count{color:#efcf84}.selected-spread{padding:21px}.selected-spread h2{margin:12px 0 6px}.selected-spread p,.selected-spread li{color:#c7bec9;font-size:.86rem;line-height:1.55}.selected-spread ol{margin:15px 0 0;padding-left:20px}.selected-spread li{margin-bottom:6px}.selected-spread b{color:#eee0bf}.draw-layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr);gap:22px}.draw-layout aside{padding:18px}.draw-layout aside h2{font-size:1rem;margin:0}.draw-progress{color:#e2c37c}.drawn-mini{color:#c8bdcc;font-size:.84rem}.draw-deck{min-height:500px;display:flex;flex-direction:column;justify-content:center}.instruction{text-align:center;color:#d6cad7}.deck-fan{display:flex;justify-content:center;align-items:center;min-height:260px;overflow:hidden;padding:42px 0}.deck-fan .tarot-card{margin-left:-37px;flex:0 0 auto}.deck-fan .tarot-card:first-child{margin-left:0}.deck-fan .tarot-card:nth-child(2n){transform:translateY(-10px) rotate(3deg)}.deck-fan .tarot-card:nth-child(3n){transform:translateY(8px) rotate(-3deg)}.deck-fan .tarot-card:hover{z-index:4;transform:translateY(-28px) scale(1.08)!important}.deck-number-selector{width:min(100%,510px);margin:17px auto 0}.deck-number-selector label{display:block;color:#e5d6b4;font-size:.8rem;margin-bottom:7px}.deck-number-selector>div{display:flex;gap:9px}.deck-number-selector input{min-width:0}.deck-number-selector .primary{white-space:nowrap}.result-cards{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;margin:35px 0 25px}.result-card{max-width:200px;text-align:center}.result-card .flip-area{border:0;padding:0;background:none}.result-card h2{font-size:.98rem;margin:12px 0 4px}.result-card p{color:#cfc5d1;font-size:.84rem;line-height:1.6}.orientation{color:#e2c071!important;font-size:.78rem!important;margin:0}.orientation.reversed{color:#d9a7bc!important}.synthesis{max-width:850px;padding:23px;margin:24px auto}.synthesis p{color:#ddd3dc;line-height:1.85;margin-bottom:0}.plain-summary{border-color:#e4be6c8a;background:linear-gradient(135deg,#d5a84f20,#ffffff0b)}.plain-summary p{color:#fff1d1;font-size:1rem}.decision-panel{border-color:#7699c45c;background:#1c38551f}.decision-panel p+p{margin-top:12px}.consultation-panel{border-color:#c595df52;background:#3d254a26}.consultation-panel dl{display:grid;grid-template-columns:100px 1fr;gap:8px 14px;margin:0;line-height:1.7}.consultation-panel dt{color:#e6c883}.consultation-panel dd{margin:0;color:#d7ceda;white-space:pre-line}.ai-request-panel,.ai-interpretation{margin:18px 0;border-color:#66a9cf75;background:linear-gradient(135deg,#18536b35,#1d19310f)}.ai-request-panel h2,.ai-interpretation h2{margin:10px 0 8px}.ai-request-panel p{color:#d2d7dd;line-height:1.7}.ai-privacy-note{color:#efcc84!important;font-size:.86rem}.ai-message{max-width:760px;margin:14px auto 0;padding:11px 14px;border-radius:8px;color:#bde3f5;text-align:center;background:#1a59702a}.ai-message.error{color:#f1b2b7;background:#6c283330}.ai-content{white-space:pre-line;color:#eee4ef!important;line-height:1.95!important}.ai-interpretation small{color:#a9a0b0}.beginner-explanation{padding:12px;border-left:3px solid #d8b96e;border-radius:0 8px 8px 0;background:#ffffff0a;line-height:1.8}.reading-page{max-width:960px;margin:auto}.reading-summary,.meaning-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:16px 0}.reading-summary .panel,.meaning-grid .panel{padding:20px}.reading-summary h2,.meaning-grid h2,.panel>h2{font-size:1rem;color:#f0d68e;margin-top:0}.reading-summary p,.meaning-grid p,.panel>p{line-height:1.75;color:#d4cad6}.warning{border-color:#b57d805c;background:#5c29331a}.interpretation-list{display:grid;gap:14px;margin:20px 0}.interpretation{display:grid;grid-template-columns:82px 1fr;gap:17px;padding:16px}.interpretation h2{margin:9px 0}.interpretation h2 small{color:#a99fac;font-weight:400;font-size:.75em}.interpretation p{margin:7px 0;font-size:.92rem}.interpretation b{color:#e8d9b5}.keyword{color:#e4bd6c!important}.filter-bar{display:flex;gap:10px;margin-bottom:10px}.filter-bar input{flex:1}.filter-bar select{max-width:180px}.count-note{color:#b9aebd;font-size:.84rem}.card-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:13px}.library-card{padding:12px;display:flex;gap:10px;background:#ffffff0b;border:1px solid #ffffff17;border-radius:12px}.card-text-button{min-width:0;text-align:left;display:flex;flex-direction:column;gap:5px;justify-content:center;border:0;color:#f0e4d1;background:transparent;padding:0}.card-text-button span,.card-text-button small{color:#aaa0ae;font-size:.75rem}.card-detail aside{padding:20px;text-align:center}.card-detail aside .tarot-card{margin:20px auto}.card-detail dl{display:grid;grid-template-columns:95px 1fr;gap:12px;line-height:1.7}.card-detail dt{color:#edcf83}.card-detail dd{color:#d1c6d3;margin:0}.editor-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(360px,1.22fr);gap:20px;align-items:start}.editor-form,.studio{padding:20px}.position-edit-list{max-height:440px;overflow-y:auto;padding-right:5px}.position-edit-list fieldset{border:1px solid #ffffff25;border-radius:8px;margin:10px 0;padding:9px}.position-edit-list legend{color:#e3c57c;font-size:.77rem;padding:0 4px}.position-edit-list input,.position-edit-list textarea{margin:4px 0;padding:8px;font-size:.85rem}.form-message{color:#ebd18a;font-size:.84rem}.editor-canvas{height:500px;position:relative;overflow:hidden;margin:15px 0 8px;border-radius:13px;background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px),radial-gradient(circle at center,#b38d4724,transparent 50%);background-size:24px 24px,24px 24px,auto;border:1px dashed #e4c3764d;touch-action:none}.editor-slot{position:absolute;width:88px;text-align:center;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;cursor:grab;touch-action:none}.editor-slot.dragging{cursor:grabbing;z-index:2}.editor-slot>span{display:block;color:#ded4dd;font-size:.72rem;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-slot .tarot-card{pointer-events:none}.studio>p,.empty-note{color:#aaa0ae;font-size:.83rem}.saved-spreads{margin-top:35px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-row h2{margin:0}.section-row>div{display:flex;gap:8px}.file-button input{display:none}.saved-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:16px}.saved-grid .panel{padding:16px}.saved-grid h3{margin:0 0 6px}.saved-grid p,.saved-grid small{color:#c8becc;font-size:.85rem}.saved-grid .actions{margin-top:13px;gap:4px}.saved-grid .primary,.saved-grid .secondary{padding:7px 10px;font-size:.8rem}.history-list{display:grid;gap:12px}.history-item{padding:19px;display:flex;justify-content:space-between;gap:20px;align-items:center}.history-item h2{margin:8px 0;font-size:1.08rem}.history-item p{color:#bdb3c1;margin:5px 0;font-size:.85rem}.history-cards{color:#e0c988!important}.history-actions{display:flex;gap:6px;align-items:center}.empty-state{padding:50px 25px;text-align:center}.empty-state p{color:#c4bac9}.settings-page{max-width:780px;margin:auto}.settings-panel,.settings-page>.panel{padding:22px;margin-bottom:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.setting-row h2{margin-bottom:5px}.setting-row p{color:#bbb1c0;font-size:.9rem;margin:0}.setting-row output{color:#f0ce80;font-size:1.3rem}.settings-panel hr{border:0;border-top:1px solid #ffffff1a;margin:22px 0}.switch{width:48px;height:26px;position:relative;flex:none}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:99px;background:#6b6170;transition:.2s}.switch span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}.switch input:checked+span{background:#c69a4e}.switch input:checked+span:before{transform:translate(22px)}.range{margin:15px 0 0;accent-color:#d6ad62;padding:0}.range-labels{display:flex;justify-content:space-between;color:#aaa0ae;font-size:.75rem}.muted{opacity:.45}.auth-page{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-panel{width:min(100%,480px);padding:38px;text-align:center}.auth-panel h1{font-size:2.35rem;margin:9px 0}.auth-panel>p{color:#c7bdcb;line-height:1.75}.auth-panel form{text-align:left;margin-top:24px}.auth-panel label,.admin-generate label{display:block;color:#e4d4b1;font-size:.84rem;margin:14px 0 7px}.auth-panel .wide{margin-top:15px}.auth-error{color:#efafb5!important;margin:14px 0 0}.admin-link{color:#e5c372;border:0;background:transparent;padding:18px 8px 4px}.auth-note{color:#938a9a!important;font-size:.77rem}.admin-page{width:min(1120px,calc(100% - 40px));margin:auto;padding:48px 0 70px}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.admin-header h1{margin:7px 0 0;font-size:clamp(2rem,4vw,3rem)}.admin-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:16px}.admin-generate,.generated-keys,.license-list{padding:21px}.admin-generate h2,.generated-keys h2,.license-list h2{margin-top:0;font-size:1.08rem}.generated-keys p,.license-list>.section-row p{color:#bdb3c1;font-size:.85rem}.license-list{margin-top:16px}.license-table{display:grid;gap:8px;margin-top:16px}.license-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-top:1px solid #ffffff18}.license-row code{color:#f0cf83;letter-spacing:.06em}.license-row p{color:#bfb5c4;font-size:.8rem;margin:6px 0 0}.license-row>div:last-child{display:flex;gap:6px;align-items:center}.license-status{display:inline-block;padding:2px 6px;border-radius:5px;background:#ffffff12}.license-status.active{color:#9ad9a8}.license-status.disabled,.license-status.expired{color:#ecaab1}@media (max-width: 880px){.spread-grid{grid-template-columns:repeat(2,1fr)}.home-grid,.two-column,.draw-layout,.editor-layout,.admin-grid{grid-template-columns:1fr}.selected-spread{order:-1}.saved-grid{grid-template-columns:repeat(2,1fr)}.draw-deck{min-height:360px}.deck-fan{min-height:220px}.editor-canvas{height:420px}}@media (max-width: 590px){.topbar,.page-wrap,footer,.admin-page{width:min(100% - 26px,1180px)}.topbar{min-height:64px;gap:8px}.brand{font-size:.86rem}.topbar nav{gap:0}.topbar nav button{padding:8px 7px;font-size:.78rem}.page-wrap{padding:34px 0 44px}.hero{padding:35px 24px;background-size:170px auto;background-position:130% center}.hero h1{font-size:2.2rem}.spread-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column}.filter-bar select{max-width:none}.reading-summary,.meaning-grid{grid-template-columns:1fr}.interpretation{grid-template-columns:62px 1fr;gap:11px}.result-cards{gap:14px}.result-card{max-width:144px}.result-card .tarot-card{width:110px;height:174px}.deck-fan .tarot-card{margin-left:-45px}.deck-fan{justify-content:flex-start}.history-item,.section-row,.license-row,.admin-header{align-items:flex-start;flex-direction:column}.history-actions{width:100%}.saved-grid{grid-template-columns:1fr}.editor-canvas{height:360px}.card-detail dl,.consultation-panel dl{grid-template-columns:1fr;gap:2px}.card-detail dd,.consultation-panel dd{margin-bottom:12px}.hint-row{flex-direction:column;gap:3px}}
