/* 生成したデザイン案を、正規素材と可読性を保ったHTMLへ実装。 */
:root{--ink:#091327;--gold:#f0d391;--cream:#faf5e8;--muted:#b8c3d6}
[hidden]{display:none!important}a,button{-webkit-touch-callout:none}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}
.screen:not(.is-active){visibility:hidden}.app{background:var(--ink)}
.idle{background:#0e1025;overflow:hidden}
.hero-bg{opacity:.55;filter:saturate(.8) brightness(.8)}
.hero-vignette{background:linear-gradient(180deg,#080d23e8 0%,#10112796 27%,transparent 53%,#080d23cf 84%,#080d23 100%)}
.hero-sheen{opacity:.28;pointer-events:none}
.idle-content{position:relative;z-index:4;height:100%;min-height:0;padding:calc(16px + var(--st)) 24px calc(18px + var(--sb));display:flex;flex-direction:column;align-items:center}
.idle .brand,.result .brand{position:relative;inset:auto;transform:none;width:148px;padding:8px 13px;border-radius:6px;background:#fff;box-shadow:0 0 0 1px #dce2ef,0 7px 24px #0003;flex-shrink:0}
.exclusive{position:relative;inset:auto;transform:none;height:auto;min-height:29px;margin-top:20px;padding:5px 20px;border-color:#bb9b59;color:#fbe6b1;background:#0a1128e6;box-shadow:inset 0 0 0 3px #0a1128,inset 0 0 0 4px #cdb37255;font-size:12px;letter-spacing:.16em;border-radius:2px}
.welcome{margin:12px 0 6px;font-size:12px;font-weight:700;letter-spacing:.1em;color:#e8e1f1}
.hero-title{margin:0;text-align:center;font-weight:900;font-size:clamp(24px,7vw,33px);line-height:1.3;letter-spacing:.05em;text-shadow:0 3px 16px #0009}
.hero-title strong{display:block;font-size:clamp(40px,11vw,53px);letter-spacing:.08em;color:#f7d98d;background:linear-gradient(180deg,#fff7d8,#f4d893 44%,#c59b46 78%,#fff0c2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 1px #684511);text-shadow:none}
.pack-stage{position:relative;width:100%;flex:1;min-height:190px;display:grid;place-items:center;margin:10px 0 16px}
.pack-stage:after{content:"";position:absolute;bottom:4%;left:5%;width:90%;height:17%;border-radius:50%;background:radial-gradient(ellipse,#d98aff65,transparent 70%);border-bottom:1px solid #f0d3917a;box-shadow:0 12px 18px -15px #e8c57a;pointer-events:none}
.idle .pack{position:relative;inset:auto;transform:none;width:auto;height:clamp(170px,36svh,340px);max-width:72%;object-fit:contain;animation:packBob 3s ease-in-out infinite;filter:drop-shadow(0 15px 26px #09001c)}
.idle .halo{top:53%;width:210px;max-width:80%;opacity:.32;border-color:#ffe7aa;box-shadow:0 0 18px #ddc491,inset 0 0 50px #945b9438,0 0 50px #675cbe77}
.start-wrap{position:relative;inset:auto;width:100%;flex-shrink:0}
.start{min-height:70px;border-radius:12px;font-size:clamp(18px,5.3vw,25px);letter-spacing:.015em;text-shadow:0 2px 1px #740237;box-shadow:0 0 0 1px #fff3cd,0 0 0 3px #bf954b,0 9px 24px #aa006f3b,inset 0 2px 2px #ffc5e1}
.start small{font-size:10px;color:#ffedf6;letter-spacing:.14em;margin-bottom:5px}.start-arrow{position:absolute;right:15px;top:50%;font-size:24px;transform:translateY(-50%);font-weight:400}
.sound-note{font-size:10px;color:#d0c8df;margin-top:13px}
.sound-toggle{position:absolute;z-index:30;top:calc(12px + var(--st));right:12px;padding:8px;border:1px solid #ffffff4a;border-radius:5px;color:#e0e5f1;background:#081327d9;font-size:10px;min-height:34px;cursor:pointer}
.sound-toggle[aria-pressed="true"]{color:#f6de9e;border-color:#b09a67}
.app[data-state="result"] .sound-toggle{display:none}
.result{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 50% 0%,#293551 0%,#0b162e 38%,#060e21 100%);scrollbar-width:thin;scrollbar-color:#8d7840 transparent}
.result:before{inset:0;background:linear-gradient(135deg,transparent 12%,#e9cc8319 12.1%,transparent 12.3%,transparent 84%,#e9cc8319 84.1%,transparent 84.3%);mask-image:none;animation:none;pointer-events:none}
.result-shell{padding:calc(16px + var(--st)) 20px calc(26px + var(--sb));min-height:100%;gap:0;overflow:hidden;align-items:stretch}
.result-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:19px}.result-header .brand{width:138px}.result-header p{font-size:9px;line-height:1.7;letter-spacing:.08em;color:#cad3e3;margin:0;text-align:right}
.reward-hero{position:relative;isolation:isolate;overflow:hidden;flex-shrink:0;text-align:center;padding:18px 12px 22px;border:1px solid #f2d483;border-radius:8px;background:radial-gradient(ellipse at 50% 15%,#794a33aa,transparent 65%),linear-gradient(135deg,#261a35,#10162b 60%,#362342);box-shadow:0 0 0 3px #071226,0 0 0 4px #9d793d,0 15px 36px #0004,inset 0 0 45px #db9c3d18}
.reward-hero:before{content:"";position:absolute;inset:5px;z-index:-1;border:1px solid #d7b66f55;border-radius:3px;pointer-events:none}
.reward-rays{position:absolute;inset:-60%;z-index:-2;background:repeating-conic-gradient(from 5deg at 50% 45%,transparent 0deg 12deg,#ffdb8133 13deg 14deg,transparent 15deg 27deg);mask-image:radial-gradient(ellipse,#0009,transparent 62%);pointer-events:none}
.reward-celebration{display:flex;align-items:center;justify-content:center;gap:38px;color:#f8d98a;height:43px;margin-bottom:8px}.reward-crown{width:62px;height:40px;filter:drop-shadow(0 0 10px #f5b65766)}.reward-star{font-size:23px}.star-left{transform:rotate(-12deg)}.star-right{font-size:16px;transform:rotate(12deg)}
.reward-congrats{margin:0 0 10px;color:#ffedc6;font-size:13px;letter-spacing:.1em;font-weight:700}
.reward-heading{margin:0;line-height:1.13;font-weight:950;letter-spacing:-.035em;outline:none}
.reward-main{display:block;font-size:clamp(46px,13.6vw,66px);letter-spacing:.015em;color:#ffe49b;background:linear-gradient(#fffcec 0%,#ffe8a2 32%,#efbe51 62%,#ffebaf 78%,#fff7d8 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 #8b501d) drop-shadow(0 5px 8px #0008)}
.reward-subline{display:block;margin-top:7px;font-size:clamp(23px,6.8vw,33px);color:#fff4d4;letter-spacing:.02em;text-shadow:0 3px 0 #593723,0 0 18px #f6c97755}.reward-get{display:inline-block;margin-left:4px;font-size:1.3em;color:#ffe397}
.reward-caption{margin:15px 0 0;color:#d7c5ab;font-size:10px;letter-spacing:.035em}
.result.is-active .reward-hero:not(.is-expired){animation:rewardArrival .75s cubic-bezier(.2,.8,.25,1) both}.result.is-active .reward-hero:not(.is-expired):after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 32%,#fff5 48%,transparent 62%);transform:translateX(-130%);animation:rewardShine 1.2s .35s ease-out both;pointer-events:none}
.reward-hero.is-expired{background:#121d30;border-color:#657186;box-shadow:none}.reward-hero.is-expired .reward-celebration,.reward-hero.is-expired .reward-congrats,.reward-hero.is-expired .reward-rays{display:none}.reward-expired{display:block;font-size:21px;line-height:1.6;color:#c9d0dd}
@keyframes rewardArrival{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@keyframes rewardShine{to{transform:translateX(130%)}}
.appraisal-heading{margin:26px 0 9px;text-align:center;font-size:clamp(17px,4.6vw,22px);line-height:1.4;letter-spacing:.035em;font-weight:800;color:#fff;outline-offset:5px}
.appraisal-heading strong{display:inline-block;margin-left:4px;font-size:clamp(23px,6.3vw,30px);color:#f5d68c;letter-spacing:.01em;line-height:1.3;text-shadow:0 3px 18px #eec87820}
.appraisal-heading:focus{outline:none}
.appraisal-intro{margin:0 0 18px;text-align:center;color:#e8edf5;font-size:13px;line-height:1.8;font-weight:600}.appraisal-intro strong{color:#fff}
.photo-guide{color:#18253b;background:linear-gradient(130deg,#fffdf6,#f1e9d6);padding:15px 15px 14px;border:1px solid #e1c584;outline:1px solid #9b7c42;outline-offset:-5px;border-radius:7px;box-shadow:0 8px 30px #0002}
.photo-guide h2{display:flex;align-items:center;gap:12px;justify-content:center;font-size:15px;letter-spacing:.14em;margin:0 0 12px;font-weight:800}.photo-guide h2:before,.photo-guide h2:after{content:"";height:1px;flex:1;background:#bca264}
.photo-example{position:relative;margin:0;padding:11px 15px 6px;background:#e3ded1;border-radius:5px;overflow:hidden}
.camera-corners{position:absolute;inset:8px 10px 25px;background:linear-gradient(#18253b,#18253b) left top/15px 2px no-repeat,linear-gradient(#18253b,#18253b) left top/2px 15px no-repeat,linear-gradient(#18253b,#18253b) right top/15px 2px no-repeat,linear-gradient(#18253b,#18253b) right top/2px 15px no-repeat,linear-gradient(#18253b,#18253b) left bottom/15px 2px no-repeat,linear-gradient(#18253b,#18253b) left bottom/2px 15px no-repeat,linear-gradient(#18253b,#18253b) right bottom/15px 2px no-repeat,linear-gradient(#18253b,#18253b) right bottom/2px 15px no-repeat;pointer-events:none}
.example-cards{display:flex;align-items:center;justify-content:center;gap:9px;padding:3px 6px 7px}.example-cards img{display:block;width:27%;max-width:77px;height:auto;aspect-ratio:0.716;object-fit:contain;border-radius:3px;box-shadow:0 3px 5px #0003}
.photo-example figcaption{text-align:center;font-size:9px;line-height:1.5;color:#4f514f;margin-top:1px}
.photo-steps{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:9px;font-size:12px;font-weight:800;line-height:1.55}.photo-steps li{display:flex;align-items:flex-start;gap:8px}.step-number{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#122238;color:#ecd297;flex-shrink:0;font:700 12px Georgia,serif}
.photo-note{margin:10px 0 0;color:#626358;font-size:10px;line-height:1.6}
.appraisal-hit{position:relative;min-height:64px;margin-top:18px;border:1px solid #72e2a0;border-radius:10px;background:linear-gradient(#13b65e,#089149);box-shadow:inset 0 2px 0 #ffffff45,0 5px 0 #035c31,0 10px 24px #0003;font-size:clamp(16px,4.55vw,22px);line-height:1.4;font-weight:800;text-shadow:0 1px 2px #034f30;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 19px 12px 12px;letter-spacing:-.025em;text-decoration:none;color:#fff}
.appraisal-hit svg{width:23px;height:23px;flex:none}.appraisal-hit:after{content:"›";position:absolute;right:10px;font-size:24px;font-weight:400}.appraisal-hit small{font-size:10px;letter-spacing:.025em}.cta-help{margin:11px 0 16px;text-align:center;font-size:10px;color:#b5c3d9;line-height:1.6}
.coupon{margin:0;padding:12px 14px;border:1px solid #b89b5b;border-radius:5px;box-shadow:none;background:#0a1427;display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;text-align:left;color:#f2daa4}.coupon:before,.coupon:after{display:none}
.coupon-value{margin:0;font-size:24px;text-shadow:none;color:#f2daa4;letter-spacing:.04em}.coupon-label{font-size:9px;letter-spacing:.1em}.coupon-expiry{border-left:1px solid #ffffff26;padding-left:13px;text-align:right}.expiry-label{font-size:9px;color:#c2c9d5;letter-spacing:.04em;text-align:right}.expiry{display:block;min-height:0;font-size:clamp(16px,4.6vw,22px);letter-spacing:.01em;line-height:1.6;color:#fff}.expiry-date{font-size:10px;color:#c2c9d5;margin:2px 0 0}.coupon.is-expired{border-color:#5a6374;color:#aeb7c5}.coupon.is-expired .coupon-value{color:#aeb7c5}.expiry.expired{font-size:12px;color:#c8cbd0}
.expiry-message{margin:10px 0 0;color:#e6d5aa;font-size:11px;text-align:center;line-height:1.7}.storage-note{padding:10px;border:1px solid #c9a75e;color:#ebd7b1;font-size:11px;line-height:1.7;margin:12px 0 0}
.result-note{font-size:10px;color:#aebcd0;line-height:1.8;margin-top:12px}.card-credits{margin:14px 0 0;font-size:9px;color:#91a2ba;line-height:1.7;text-align:center}.card-credits a{color:inherit;text-underline-offset:2px}.chat-fallback{margin:12px 0 0;color:#b7c6da;font-size:11px;line-height:1.8}.chat-fallback summary{cursor:pointer;text-align:center;text-decoration:underline;text-underline-offset:3px;padding:5px}.chat-fallback p{margin:6px 0}.chat-fallback a{color:#fff}.chat-fallback button{margin:6px 0;background:#20314b;color:#fff;border:1px solid #8091a9;padding:8px 12px;border-radius:4px}
@keyframes packBob{50%{transform:translateY(-7px)}}
@media(max-height:700px){.idle-content{padding-top:calc(10px + var(--st));padding-bottom:calc(14px + var(--sb))}.idle .brand{width:124px}.exclusive{margin-top:12px;font-size:10px;min-height:25px}.welcome{margin-top:8px;font-size:10px}.hero-title{font-size:22px}.hero-title strong{font-size:36px}.pack-stage{min-height:130px;margin:3px 0 12px}.idle .pack{height:clamp(130px,32svh,220px)}.start{min-height:60px}.sound-note{margin-top:9px;font-size:9px}.sound-toggle{font-size:9px;padding:6px;min-height:30px}.result-shell{padding-top:12px}.result-header{margin-bottom:12px}.appraisal-heading{margin-top:16px}.appraisal-intro{margin-bottom:13px}.photo-guide{padding:12px}.example-cards img{max-width:61px}.photo-steps{font-size:11px}.appraisal-hit{margin-top:14px}}
@media(max-width:350px){.idle-content{padding-left:18px;padding-right:18px}.result-shell{padding-left:14px;padding-right:14px}.result-header p{font-size:8px}.photo-steps{font-size:11px}.photo-guide{padding:12px}.appraisal-hit{font-size:15px}.coupon{column-gap:8px}.coupon-expiry{padding-left:8px}.coupon-value{font-size:20px}.sound-toggle{right:8px}}
@media(max-height:740px){.result-shell{padding-bottom:calc(112px + var(--sb))}.appraisal-hit{position:fixed;z-index:25;left:50%;bottom:calc(18px + var(--sb));transform:translateX(-50%);width:calc(100% - 32px);max-width:432px;margin:0;box-shadow:inset 0 2px 0 #ffffff45,0 5px 0 #035c31,0 0 0 12px #091327f0,0 -15px 25px #091327}.cta-help{margin-top:16px}}
.screenshot-coupon{display:block;padding:18px 14px;text-align:center;background:linear-gradient(135deg,#17263e,#0a1427);border-color:#ddbf79}
.screenshot-coupon .coupon-label{font-size:11px;color:#e1c78f}.screenshot-coupon .coupon-value{margin:7px 0 13px;font-size:clamp(23px,6.5vw,29px)}
.screenshot-coupon .coupon-expiry{border-left:0;border-top:1px solid #c5ad774d;padding:13px 0 0;text-align:center}
.screenshot-coupon .expiry-label{text-align:center;font-size:11px;color:#e6d2a2}.screenshot-coupon .expiry-date{font-size:clamp(17px,4.8vw,21px);font-weight:800;color:#fff;margin:6px 0;line-height:1.5;font-variant-numeric:tabular-nums}
.issued-date{font-size:10px;line-height:1.7;color:#c2c9d5;margin:0}.screenshot-coupon .expiry{font-size:12px;color:#c2c9d5;margin-top:7px}
.coupon-save-note{margin:12px 0 0;padding-top:12px;border-top:1px dashed #c5ad774d;font-size:11px;line-height:1.8;color:#e4e9f1}.screenshot-coupon.is-expired .expiry-date{color:#aeb7c5}
.expiry-dock{position:fixed;z-index:40;top:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;min-height:62px;padding:calc(8px + var(--st)) 12px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:linear-gradient(110deg,#f9ebc6,#fff6dd 50%,#eddaa7);color:#362711;border-bottom:2px solid #bb9749;box-shadow:0 3px 14px #0005;text-align:center}
.expiry-dock span{font-size:11px;font-weight:800;letter-spacing:.05em}.expiry-dock strong{font-size:clamp(17px,4.7vw,21px);line-height:1.3;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
.expiry-dock.is-expired{background:#d1d5dc;color:#404858;border-color:#8a929e}
.app[data-state="result"] .result-shell{padding-top:calc(80px + var(--st))}
.app[data-state="result"] .result{scroll-padding-top:calc(80px + var(--st))}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
