*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}.app{min-height:100vh;font-family:system-ui,sans-serif;font-size:15px;position:relative}.app-bg{filter:blur(8px);opacity:.35;z-index:0;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0;transform:scale(1.08)}.app-content{z-index:1;box-sizing:border-box;flex-direction:column;gap:1.25rem;width:100%;max-width:400px;margin:0 auto;padding:2rem 1rem;display:flex;position:relative}.app-content h1{margin:0;font-size:1.5rem;line-height:1.3}label{flex-direction:column;gap:.4rem;min-width:0;font-size:.95rem;font-weight:600;display:flex}input[type=text],input[type=password],input[type=date],input[type=time],select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;box-shadow:none;appearance:none;background:#ffffffd9;border:1px solid #ccc;border-radius:4px;outline:none;padding:.5rem .75rem;font-size:.95rem;line-height:1.4}input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,input[type=time]:focus,select:focus{box-shadow:none;border-color:#888}.select-fieldset{flex-direction:column;gap:.5rem;display:flex}.select-row{gap:.5rem;width:100%;display:flex}.select-label{flex:1;min-width:0;font-weight:400}.select-label select{cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,#666 50%),linear-gradient(135deg,#666 50%,#0000 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:1.6rem}input[type=date]::-webkit-datetime-edit{min-width:0;padding:0}input[type=time]::-webkit-datetime-edit{min-width:0;padding:0}fieldset{box-sizing:border-box;background:#ffffffbf;border:1px solid #ccc;border-radius:4px;width:100%;min-width:0;margin:0;padding:.75rem 1rem}legend{padding:0 .25rem;font-size:.95rem;font-weight:600}.radio-label{flex-direction:row;align-items:center;margin-top:.5rem;font-size:.95rem;font-weight:400}.analyze-btn{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:4px;width:100%;padding:.75rem 1rem;font-size:1rem;font-weight:600}.analyze-btn:disabled{opacity:.6;cursor:not-allowed}.access-lock{flex-direction:column;gap:.75rem;display:flex}.hint-toggle{color:#555;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.9rem;text-decoration:underline}.hint-toggle:hover{color:#222}.hint-text{color:#333;background:#ffffffd9;border:1px dashed #bbb;border-radius:4px;margin:0;padding:.65rem .75rem;font-size:.9rem}.error{color:#8b1a1a;white-space:pre-wrap;background:#fff0f0e6;border:1px solid #e0b4b4;border-radius:4px;margin:0;padding:.75rem 1rem;font-size:.95rem;line-height:1.5}.result{box-sizing:border-box;background:#ffffffe0;border:1px solid #ddd;border-radius:4px;width:100%;padding:1rem}.result h2{margin:0 0 .75rem;font-size:1.05rem}.result-text{white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit;font-size:.95rem;line-height:1.65}.skeleton-status{color:#555;margin:0 0 1rem;font-size:.9rem;font-weight:600}.skeleton-block{flex-direction:column;gap:.55rem;margin-bottom:1.35rem;display:flex}.skeleton-block:last-child{margin-bottom:0}.skeleton-line{background:linear-gradient(90deg,#0000000f 0%,#0000001f 45%,#0000000f 90%) 0 0/200% 100%;border-radius:4px;width:100%;height:.85rem;animation:1.35s ease-in-out infinite skeleton-shimmer}.skeleton-line.title{width:42%;height:1.05rem;margin-bottom:.15rem}.skeleton-line.medium{width:72%}.skeleton-line.short{width:48%}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton-line{background:#00000014;animation:none}}.home{min-height:100vh;font-family:system-ui,sans-serif;position:relative;overflow:hidden}.home-bg{z-index:0;width:100%;height:100%;position:fixed;inset:0}.wind-lines path{animation:14s ease-in-out infinite alternate wind-drift}.wind-lines path:nth-child(2n){animation-duration:19s;animation-direction:alternate-reverse}@keyframes wind-drift{0%{transform:translate(-14px)}to{transform:translate(14px)}}.home-content{z-index:1;box-sizing:border-box;flex-direction:column;gap:1.5rem;width:100%;max-width:420px;margin:0 auto;padding:3rem 1rem 2.5rem;display:flex;position:relative}.home-head{text-align:center;color:#f3e7c8}.home-head h1{letter-spacing:.22em;text-indent:.22em;text-shadow:0 2px 12px #00000073;margin:0;font-size:1.9rem;font-weight:700}.home-head p{color:#f3e7c8b8;letter-spacing:.05em;margin:.5rem 0 0;font-size:.9rem}.choice-row{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.choice{cursor:pointer;border:1px solid #0000;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:1.15rem .6rem 1.25rem;font-family:inherit;transition:transform .14s,box-shadow .14s;display:flex;position:relative;overflow:hidden;transform:translateY(0);box-shadow:0 6px 16px #04102047,0 1px 2px #04102033}.choice:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 6px #04102042,0 1px 1px #0410202e}.choice:disabled{cursor:not-allowed;opacity:.55}.choice-art{width:74px;height:74px}.choice-title{letter-spacing:.14em;text-indent:.14em;font-size:1.15rem;font-weight:700}.choice-sub{letter-spacing:.02em;opacity:.66;font-size:.72rem}.choice-saju{color:#4a3b17;background:radial-gradient(120% 90% at 50% 0,#fff 0%,#f7f3ea 62%,#efe7d6 100%);border-color:#b4944a6b}.choice-saju .choice-sub{color:#6b5827}.choice-tarot{color:#f0e3ff;background:radial-gradient(60% 45% at 28% 18%,#d6b0ff57 0%,#d6b0ff00 60%),radial-gradient(70% 55% at 78% 82%,#7e4ac480 0%,#7e4ac400 62%),linear-gradient(160deg,#4a2a7a 0%,#351c5c 46%,#26123f 100%);border-color:#c49eff57}.choice-tarot .choice-sub{color:#f0e3ffb8}.choice-tarot:before{content:"";pointer-events:none;background-image:radial-gradient(circle at 18% 26%,#ffffffd9 .8px,#0000 1.4px),radial-gradient(circle at 72% 16%,#ffffffb3 .7px,#0000 1.3px),radial-gradient(circle at 84% 62%,#fffc .9px,#0000 1.5px),radial-gradient(circle at 34% 78%,#fff9 .7px,#0000 1.3px),radial-gradient(circle at 56% 44%,#ffffff80 .6px,#0000 1.2px);animation:3.4s ease-in-out infinite sparkle;position:absolute;inset:0}.choice-tarot:after{content:"";pointer-events:none;background:linear-gradient(100deg,#fff0 0%,#ffffff29 50%,#fff0 100%);width:45%;height:220%;animation:5.5s ease-in-out infinite velvet-sheen;position:absolute;top:-60%;left:-35%;transform:rotate(12deg)}@keyframes sparkle{0%,to{opacity:.45}50%{opacity:1}}@keyframes velvet-sheen{0%,to{left:-35%}55%{left:108%}}.home-lock{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#081a3094;border:1px solid #e8c86a47;border-radius:12px;flex-direction:column;gap:.7rem;padding:1.1rem 1rem 1.2rem;display:flex;box-shadow:0 6px 18px #030c1a4d}.home-lock label{color:#f0e4c6;font-size:.9rem}.home-lock input[type=password]{background:#fffffff0;border-color:#e8c86a66}.home-unlock-btn{letter-spacing:.06em;color:#241a06;cursor:pointer;background:linear-gradient(#f0d98c 0%,#d5b45b 100%);border:none;border-radius:6px;width:100%;padding:.7rem 1rem;font-size:.98rem;font-weight:700;transition:transform .12s,box-shadow .12s;box-shadow:0 3px 8px #030c1a47}.home-unlock-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 3px #030c1a3d}.home-unlock-btn:disabled{opacity:.65;cursor:not-allowed}.home-hint-toggle{color:#f0d98cd9;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:.85rem;text-decoration:underline}.home-hint{color:#f2e8cd;background:#ffffff14;border:1px dashed #e8c86a73;border-radius:6px;margin:0;padding:.6rem .7rem;font-size:.88rem}.home-unlocked{text-align:center;color:#f0e2becc;margin:0;font-size:.88rem}.home-error{color:#ffd9d9;background:#7818186b;border:1px solid #ffa0a066;border-radius:6px;margin:0;padding:.7rem .9rem;font-size:.9rem}.back-btn{color:#444;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:.3rem 0;font-size:.9rem}.back-btn-dark{color:#f0e3ffcc}.tarot{min-height:100vh;font-family:system-ui,sans-serif;position:relative}.tarot-table{z-index:0;background:radial-gradient(80% 55% at 50% 26%,#b484f647 0%,#582c9c00 62%),radial-gradient(120% 90% at 50% 100%,#140824e6 0%,#14082400 60%),linear-gradient(165deg,#3d2168 0%,#2a1449 48%,#1a0c30 100%);position:fixed;inset:0}.tarot-table:after{content:"";background-image:radial-gradient(circle at 12% 18%,#ffffffb3 .8px,#0000 1.4px),radial-gradient(circle at 68% 12%,#ffffff8c .7px,#0000 1.3px),radial-gradient(circle at 88% 46%,#ffffffa6 .9px,#0000 1.5px),radial-gradient(circle at 24% 62%,#ffffff80 .7px,#0000 1.3px),radial-gradient(circle at 52% 88%,#ffffff73 .8px,#0000 1.4px);animation:4.2s ease-in-out infinite sparkle;position:absolute;inset:0}.tarot-content{z-index:1;box-sizing:border-box;flex-direction:column;gap:1.15rem;width:100%;max-width:420px;margin:0 auto;padding:1.5rem 1rem 2.5rem;display:flex;position:relative}.tarot-head{text-align:center;color:#f0e3ff}.tarot-head h1{letter-spacing:.2em;text-indent:.2em;margin:0;font-size:1.6rem}.tarot-head p{color:#f0e3ffb8;margin:.45rem 0 0;font-size:.88rem}.fan{perspective:900px;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.5rem 0;display:flex}.tarot-card{cursor:pointer;background:0 0;border:none;width:62px;height:96px;padding:0;transition:transform .2s;transform:translateY(0)}.tarot-card:disabled{cursor:default}.tarot-card:not(:disabled):active{transform:translateY(3px)}.tarot-card.is-picked{transform:translateY(-8px)}.tarot-card-inner{width:100%;height:100%;transform-style:preserve-3d;border-radius:7px;transition:transform .55s cubic-bezier(.4,.1,.2,1);display:block;position:relative;box-shadow:0 5px 12px #0802146b}.tarot-card.is-picked .tarot-card-inner{transform:rotateY(180deg)}.tarot-face{backface-visibility:hidden;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;display:flex;position:absolute;inset:0;overflow:hidden}.tarot-back{background:repeating-linear-gradient(45deg,#ffffff0f 0 4px,#fff0 4px 8px),linear-gradient(160deg,#4b2b86 0%,#331a5e 60%,#241040 100%);border:1px solid #c8a6ff6b}.tarot-back:after{content:"✦";color:#e8d6ff9e;font-size:1.1rem}.tarot-front{text-align:center;color:#3d2f12;background:linear-gradient(165deg,#fdfaf3 0%,#f2e9d8 100%);border:1px solid #8c6e2db3;justify-content:space-between;padding:.28rem .2rem .26rem;transform:rotateY(180deg);box-shadow:inset 0 0 0 2px #c8aa6459}.tarot-pos{letter-spacing:.02em;color:#8a6a1f;font-size:.52rem}.tarot-art{background:radial-gradient(circle at 50% 42%,#e8d6a080 0%,#e8d6a000 68%),linear-gradient(#faf4e6 0%,#efe4cc 100%);border:1px solid #a0823c73;border-radius:3px;flex:1;justify-content:center;align-items:center;width:84%;margin:.1rem 0;transition:transform .3s;display:flex;position:relative}.tarot-art.is-rev{transform:rotate(180deg)}.tarot-art img{object-fit:cover;border-radius:2px;width:100%;height:100%;display:block}.tarot-name{word-break:keep-all;border-top:1px solid #a0823c66;width:84%;padding-top:.12rem;font-size:.66rem;font-weight:700;line-height:1.2}.tarot-dir{color:#4f7a4f;font-size:.54rem}.tarot-dir.is-rev{color:#a24a4a}.tarot-intro{background:#0c041c73;border:1px solid #c6a4ff47;border-radius:12px;flex-direction:column;gap:.85rem;padding:1.1rem 1rem 1.2rem;display:flex;box-shadow:0 6px 18px #0802144d}.tarot-intro label{color:#f0e3ff;font-size:.88rem}.tarot-intro input[type=text]{background:#fffffff0;border-color:#c6a4ff66}.tarot-btn{letter-spacing:.06em;color:#f4ecff;cursor:pointer;background:linear-gradient(#7c4bc8 0%,#5a2f9c 100%);border:1px solid #c6a4ff59;border-radius:8px;width:100%;padding:.8rem 1rem;font-size:1rem;font-weight:700;transition:transform .13s,box-shadow .13s;box-shadow:0 5px 14px #0802145c}.tarot-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 5px #0802144d}.tarot-btn:disabled{opacity:.55;cursor:not-allowed}.tarot-reading{flex-direction:column;align-items:center;gap:1rem;padding:1.5rem 0 .5rem;display:flex}.crystal-wrap{justify-content:center;align-items:center;width:150px;height:168px;display:flex;position:relative}.crystal-glow{filter:blur(6px);background:radial-gradient(circle,#be96ff8c 0%,#be96ff00 68%);border-radius:50%;width:150px;height:150px;animation:2.4s ease-in-out infinite ball-glow;position:absolute;top:6px}.crystal-ball{background:radial-gradient(circle at 34% 30%,#ffffffbf 0%,#fff0 42%),radial-gradient(circle at 62% 70%,#a874f0e6 0%,#4a2684f2 70%);border-radius:50%;width:118px;height:118px;position:absolute;top:10px;overflow:hidden;box-shadow:inset 0 -10px 22px #1e0a3c99,0 8px 22px #08021473}.crystal-swirl{background:conic-gradient(#fff0 0deg,#e4c8ff8c 70deg,#fff0 140deg,#b4e6ff73 220deg,#fff0 300deg);animation:3.2s linear infinite swirl;position:absolute;inset:-25%}.crystal-spark{background:radial-gradient(circle at 30% 62%,#fffffff2 1.4px,#0000 2.4px),radial-gradient(circle at 68% 38%,#ffffffd9 1.2px,#0000 2.2px),radial-gradient(circle at 52% 76%,#ffffffbf 1px,#0000 2px);animation:1.9s ease-in-out infinite sparkle;position:absolute;inset:0}.crystal-shine{filter:blur(3px);background:#ffffffb8;border-radius:50%;width:34px;height:22px;position:absolute;top:16px;left:22px}.crystal-stand{clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);background:linear-gradient(#d8b970 0%,#9a7833 60%,#6d5220 100%);border-radius:6px 6px 10px 10px;width:92px;height:26px;position:absolute;bottom:4px;box-shadow:0 5px 12px #08021473}.tarot-reading-text{color:#f0e3ffd9;letter-spacing:.04em;margin:0;font-size:.92rem}@keyframes swirl{to{transform:rotate(360deg)}}@keyframes ball-glow{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.06)}}.drawn-list{background:#0c041c6b;border:1px solid #c6a4ff42;border-radius:10px;flex-direction:column;gap:.4rem;margin:0;padding:.75rem .85rem;list-style:none;display:flex}.drawn-item{color:#f0e3ff;align-items:center;gap:.65rem;font-size:.86rem;display:flex}.drawn-art{object-fit:cover;border:1px solid #c8aa6480;border-radius:3px;flex:none;width:38px;height:62px;box-shadow:0 2px 6px #08021466}.drawn-art.is-rev{transform:rotate(180deg)}.drawn-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.drawn-pos{color:#f0e3ff9e;white-space:nowrap;font-size:.76rem}.drawn-name{font-weight:600}.drawn-name em{color:#9fd6a2;margin-left:.35rem;font-size:.76rem;font-style:normal}.drawn-name em.is-rev{color:#f0a5a5}.tarot-result{background:#fffffff0;border-color:#c6a4ff66}@media (prefers-reduced-motion:reduce){.wind-lines path,.choice-tarot:before,.choice-tarot:after,.tarot-table:after,.crystal-swirl,.crystal-glow,.crystal-spark{animation:none}.tarot-card-inner{transition:none}}
