@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap";:root{font-family:Noto Sans JP,sans-serif;color:#302b45;background:#f7f5ef;font-synthesis:none;--purple:#403a99;--ink:#302b45;--paper:#f7f5ef;--line:#dedbe4;--muted:#766f82}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b09039;outline-offset:5px}svg{width:20px;height:20px;stroke-width:1.7;flex-shrink:0}[hidden]{display:none!important}canvas{display:block;width:100%;height:100%}.site-header{display:flex;justify-content:space-between;align-items:center;max-width:1240px;margin:auto;padding:35px 50px;font-size:12px;color:var(--muted)}.brand{font-family:"Noto Serif JP",serif;font-size:20px;font-weight:600;letter-spacing:.1em;color:var(--ink)}#home{max-width:1140px;margin:auto}.hero{min-height:min(760px,calc(100svh - 100px));display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:auto auto;column-gap:40px;padding:40px 50px 80px;align-content:center}.hero-copy{align-self:end;padding-bottom:32px}.event-date{display:block;font-size:13px;letter-spacing:.12em;color:var(--muted);margin-bottom:23px}h1{font-family:"Noto Serif JP",serif;font-size:clamp(36px,4.8vw,58px);font-weight:500;letter-spacing:.025em;line-height:1.65;margin:0}.hero-art{grid-column:2;grid-row:1 / 3;position:relative;min-height:510px;align-self:stretch}.portrait-halo{position:absolute;inset:9% 0 8%;background:#e7e3ef;border-radius:49% 49% 43% 47%;transform:rotate(-5deg)}.portrait-halo:after{content:"";position:absolute;inset:10px;border:1px solid #d6d0e3;border-radius:inherit}#model-mount{position:absolute;inset:-12px -20px;touch-action:pan-y;cursor:grab}.home-actions{width:min(100%,340px);display:grid;gap:12px;align-content:start}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:15px 22px;border-radius:12px;font-size:15px;font-weight:500;border:1px solid var(--purple);transition:background .18s,transform .18s}.primary{background:var(--purple);color:#fff}.primary:not(:disabled):hover{background:#302b80;transform:translateY(-1px)}.secondary{background:transparent;color:var(--purple);border-color:#c5bfd6}.secondary:not(:disabled):hover{background:#efebf5}.home-actions>.primary,.home-actions>.secondary{justify-content:flex-start}.home-actions>button>svg:last-child{margin-left:auto}.home-actions>button>svg:first-child{margin-left:0}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px;background:none;border:0;color:var(--muted);font-size:12px;min-height:44px}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent}.icon-button:hover{background:#eeebf5}.camera-active .site-header{display:none}.camera-header{height:78px;max-width:940px;margin:auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.camera-header p{margin:0;font-size:14px;font-weight:500}.camera-layout{display:grid;grid-template-columns:minmax(0,450px) minmax(250px,300px);gap:44px;max-width:900px;padding:0 20px 30px;margin:auto;align-items:center}.camera-stage{position:relative;aspect-ratio:3/4;width:100%;isolation:isolate;background:#e4e0eb;overflow:hidden;border-radius:14px;touch-action:none}#camera-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}#camera-video.mirrored{transform:scaleX(-1)}#camera-mount{position:absolute;inset:0;z-index:2}.demo-background{position:absolute;inset:0;background:#e4e0eb}.demo-background:after{content:"";position:absolute;inset:18% 12%;border:1px solid #cdc5dd;border-radius:48%}.photo-frame{position:absolute;inset:0;pointer-events:none;z-index:3;border:12px solid #fff;border-bottom-width:44px}.photo-frame time{position:absolute;bottom:-33px;right:6px;white-space:nowrap;font-size:12px;letter-spacing:.08em;color:#4d476c;background:#fff;line-height:20px}.photo-frame.no-border{border:0}.photo-frame.no-border time{right:12px;bottom:12px;padding:3px 8px;border-radius:4px;font-size:11px}.stage-hint{position:absolute;bottom:64px;left:50%;transform:translate(-50%);white-space:nowrap;padding:7px 12px;border-radius:20px;font-size:10px;color:#fff;background:#302b4570;z-index:4;pointer-events:none}.pose-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.pose{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;flex:1;min-height:62px;padding:9px 3px;background:none;border:1px solid var(--line);border-radius:10px;font-size:11px}.pose svg{width:17px;height:17px}.pose.active{background:#e9e4f3;border-color:#9186b5;color:var(--purple)}.adjustments{margin-top:14px;border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.adjustments>summary{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px;color:var(--muted)}.adjustments>summary>svg:first-child{width:17px}.adjustments>summary>svg:last-child{margin-left:auto;width:15px;transition:transform .18s}.adjustments[open]>summary>svg:last-child{transform:rotate(180deg)}.adjustment-content{padding:0 0 12px}.slider-label{display:flex;justify-content:space-between;font-size:12px;margin:14px 0 5px}.slider-label output{color:var(--muted)}input[type=range]{width:100%;height:26px;accent-color:var(--purple);margin:0;cursor:pointer}input[type=checkbox]{width:17px;height:17px;accent-color:var(--purple);margin:0 7px 0 0}.options-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:11px}.options-row label{display:flex;align-items:center;min-height:44px}.options-row .icon-button{width:38px;height:38px;flex-shrink:0}.shutter-row{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;gap:8px;margin-top:24px}.shutter{width:80px;height:80px;border:2px solid var(--purple);border-radius:50%;padding:5px;background:none}.shutter span{display:block;width:100%;height:100%;background:var(--purple);border-radius:50%;transition:transform .12s}.shutter:active span{transform:scale(.88)}.small-action{justify-self:end;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:none;color:var(--muted);font-size:10px;min-width:64px;min-height:52px}.countdown{position:absolute;inset:0;z-index:5;display:grid;place-items:center;color:#fff;font-size:90px;text-shadow:0 2px 25px #302b4599;pointer-events:none}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:#302b45f5;color:#fff;padding:13px 19px;border-radius:10px;z-index:30;max-width:min(90vw,480px);width:max-content;font-size:12px;line-height:1.8}dialog{width:calc(100% - 28px);max-width:460px;max-height:94dvh;border:0;border-radius:20px;padding:24px;background:var(--paper);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#302b4570;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.dialog-header h2{font-family:"Noto Serif JP",serif;font-size:20px;font-weight:500;margin:0}.dialog-header .icon-button{width:40px;height:40px;flex-shrink:0}#captured-photo{display:block;width:100%;max-height:48dvh;object-fit:contain}.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.photo-actions .primary{grid-column:1/-1;min-height:52px}.photo-actions .text-button{font-size:11px}.help{margin-top:12px;color:var(--muted);font-size:11px;line-height:1.9}.help summary{text-align:center;text-decoration:underline;text-underline-offset:4px;min-height:40px;padding:8px}.help p{margin:4px 4px 12px}.ar-note{font-size:12px;line-height:1.9;color:var(--muted);text-align:center;min-height:24px;margin:16px 0}#ar-launch,#ar-photo-fallback{width:100%;min-height:52px}#ar-retry{width:100%}model-viewer{display:block;width:100%;height:340px;background:#e7e3ef;border-radius:14px;--poster-color:transparent}.ar-guidance,.ar-date{display:none;position:absolute;pointer-events:none}.ar-guidance{left:16px;right:16px;bottom:30px;text-align:center;color:#fff;background:#302b457d;border-radius:10px;padding:12px;font-size:14px}.ar-date{right:18px;top:20px;padding:7px 10px;background:#fff;border-radius:5px;font-size:12px;color:#403a99}model-viewer[ar-status=session-started] .ar-guidance,model-viewer[ar-status=object-placed] .ar-guidance,model-viewer[ar-status=session-started] .ar-date,model-viewer[ar-status=object-placed] .ar-date{display:block}.flash{animation:flash .24s ease-out}@keyframes flash{0%{filter:brightness(2.5)}to{filter:brightness(1)}}@media(max-width:700px){.site-header{padding:23px 25px 12px;font-size:10px}.brand{font-size:17px}.hero{display:flex;flex-direction:column;min-height:0;padding:22px 28px 26px;gap:0}.hero-copy{text-align:center;align-self:auto;padding:0}.event-date{font-size:11px;letter-spacing:.1em;margin-bottom:12px}h1{font-size:32px;line-height:1.55}.hero-art{order:1;width:min(100%,340px);min-height:0;height:clamp(260px,37svh,340px);align-self:center;margin:8px 0 7px}.portrait-halo{inset:7% 10% 5%}#model-mount{inset:-14px 0}.home-actions{order:2;align-self:center;width:100%;max-width:340px;gap:10px}.primary,.secondary{min-height:54px;font-size:14px;border-radius:11px}.home-actions .text-button{font-size:11px;padding:6px;min-height:34px}.camera-header{height:62px;padding:0 16px}.camera-header .icon-button{width:38px;height:38px}.camera-header p{font-size:13px}.camera-layout{display:flex;flex-direction:column;gap:0;padding:0 13px max(16px,env(safe-area-inset-bottom));width:100%}.camera-stage{width:min(100%,calc((100svh - 330px)*.75));max-width:420px;border-radius:12px}.camera-controls{width:100%;max-width:420px;padding:12px 3px 0}.pose{min-height:51px;padding:6px 2px;font-size:10px;gap:5px}.adjustments{margin-top:5px}.adjustments>summary{min-height:36px;font-size:11px}.shutter-row{margin-top:12px;grid-template-columns:1fr 68px 1fr}.shutter{width:68px;height:68px}.photo-frame{border-width:9px;border-bottom-width:36px}.photo-frame time{font-size:10px;bottom:-28px;right:5px}.stage-hint{bottom:53px;font-size:9px}.dialog-header h2{font-size:18px}dialog{padding:20px;border-radius:17px}.toast{font-size:11px}model-viewer{height:min(330px,43svh)}.help{font-size:10px}.ar-note{font-size:11px}.small-action{font-size:9px}}@media(max-width:380px){.hero{padding:14px 25px 20px}h1{font-size:29px}.hero-art{height:260px}.event-date{margin-bottom:8px}.site-header{padding-top:18px}.home-actions{gap:8px}.primary,.secondary{min-height:50px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}#pause-motion{justify-self:start}#pause-motion[aria-pressed=true]{color:var(--purple)}.ar-motion-controls{display:flex;align-items:center;gap:16px;margin:14px 0;font-size:12px}.ar-motion-controls select{flex:1;min-width:0;min-height:44px;padding:8px 12px;font:inherit;color:var(--purple);background:var(--paper);border:1px solid #c5bfd6;border-radius:9px}.ar-motion-controls select:focus-visible{outline:3px solid #b09039;outline-offset:3px}@media(max-width:380px){.pose{font-size:9px}.pose-options{gap:5px}}:root{--purple:#36318f;--ink:#231815;--paper:#fff;--line:#e2e1e8;--muted:#706d79;color:var(--ink);background:var(--paper)}body{border-top:5px solid var(--purple)}.site-header{max-width:1280px;padding:12px 48px 8px;min-height:114px;color:var(--ink)}.brand{display:block;flex:none;padding:19px;line-height:0}.brand img{display:block;width:180px;height:auto}.event-name{font-size:12px;font-weight:500;letter-spacing:.1em;padding:12px 0}#home{max-width:1220px}.hero{grid-template-columns:1fr 1fr;column-gap:40px;padding:24px 66px 64px;min-height:min(680px,calc(100svh - 119px))}.hero-copy{padding-bottom:38px}.event-date{font-size:13px;color:var(--purple);font-weight:500;letter-spacing:.08em;margin-bottom:24px}h1{font-family:Noto Sans JP,sans-serif;font-size:clamp(36px,4vw,52px);font-weight:600;line-height:1.65;letter-spacing:.035em}.hero-art{min-height:490px}#model-mount{inset:0 -20px}.home-actions{max-width:350px;gap:12px}.primary,.secondary{border-radius:4px;min-height:58px;font-weight:500}.primary{background:var(--purple);border-color:var(--purple)}.primary:not(:disabled):hover{background:#29246d}.secondary{background:#fff;border-color:var(--purple)}.secondary:not(:disabled):hover{background:#f4f3f9}.home-actions .text-button{color:var(--muted);font-size:11px;justify-content:flex-start;padding-left:0}.text-button:hover{color:var(--purple)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,.ar-motion-controls select:focus-visible{outline:3px solid var(--purple);outline-offset:4px}.camera-active{border-top:0}.camera-header p{color:var(--purple)}.camera-stage{border-radius:4px;background:#f3f3f5}.demo-background{background:#f3f3f5}.demo-background:after{display:none}.photo-frame{border-bottom-width:60px}.photo-brand{position:absolute;left:12px;bottom:-48px;width:100px;height:auto;display:block}.photo-frame time{color:var(--purple);bottom:-40px;font-size:11px;letter-spacing:.03em;right:12px}.photo-frame.no-border .photo-brand{display:none}.photo-frame.no-border time{color:var(--purple)}.stage-hint{bottom:76px;background:#23181580}.pose{border-radius:4px}.pose.active{background:#f0eef8;border-color:var(--purple)}.icon-button:hover{background:#f4f3f9}.shutter{border-color:var(--purple)}.shutter span{background:var(--purple)}.toast{background:#231815f5;border-radius:4px}dialog{border-radius:8px;background:#fff}dialog::backdrop{background:#23181570;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-header h2{font-family:Noto Sans JP,sans-serif;font-size:19px;font-weight:500}model-viewer{background:#f3f3f5;border-radius:4px}.ar-loading-poster{display:block;width:100%;height:340px;object-fit:contain;background:#f3f3f5;border-radius:4px}.ar-motion-controls select{border-radius:4px;border-color:var(--line)}.ar-date{color:var(--purple)}@media(max-width:700px){body{border-top-width:4px}.site-header{padding:4px 17px;min-height:88px}.brand{padding:14px}.brand img{width:132px}.event-name{font-size:9px;letter-spacing:0;padding-right:8px}.hero{padding:24px 28px 26px;min-height:0;gap:0}.hero-copy{padding:0;text-align:center}.event-date{font-size:11px;margin-bottom:13px}h1{font-size:30px;line-height:1.55;letter-spacing:.035em}.hero-art{height:clamp(250px,34svh,315px);min-height:0;width:min(100%,340px);margin:10px 0 12px}#model-mount{inset:0}.home-actions{gap:10px;max-width:340px}.home-actions .text-button{justify-content:center;padding-left:12px;min-height:36px}.primary,.secondary{min-height:52px;font-size:14px;border-radius:4px}.camera-stage{border-radius:4px}.photo-frame{border-bottom-width:45px}.photo-brand{left:6px;bottom:-35px;width:65px}.photo-frame time{bottom:-31px;right:6px;font-size:9px;letter-spacing:0}.stage-hint{bottom:59px}dialog{border-radius:8px}.dialog-header h2{font-size:17px}}@media(max-width:380px){.site-header{padding:2px 10px;min-height:78px}.brand{padding:13px}.brand img{width:120px}.event-name{font-size:8px;padding-right:6px}.hero{padding:12px 25px 22px}h1{font-size:27px}.hero-art{height:clamp(225px,36svh,270px);margin:4px 0 10px}.event-date{margin-bottom:10px}}.camera-stage{container-type:inline-size}@container (max-width:230px){.photo-brand{width:54px;left:1px;bottom:-33px}.photo-frame time{font-size:7px;right:1px;bottom:-31px}}.camera-layout{grid-template-columns:minmax(0,570px) minmax(250px,300px);max-width:1050px;gap:36px}.camera-stage{width:min(100%,calc((100svh - 120px)*.75));justify-self:center}.camera-controls{width:100%}.adjustments{margin-top:0;border-top:1px solid var(--line)}.adjustments>summary{min-height:48px;color:var(--purple);font-size:13px;font-weight:500}.shutter-row{margin-top:18px}@media(max-width:700px){.camera-layout{gap:0;padding-inline:7px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.camera-stage{width:min(100%,calc((100svh - 195px)*.75));max-width:480px}.camera-controls{max-width:480px;padding:6px 6px 0}.adjustments>summary{min-height:40px;font-size:12px}.shutter-row{margin-top:7px}}
