:root{--paper:#F4EEE2;--paper-dark:#E9E0CF;--ink:#24212B;--soft:#5B5566;--white:#FFFDF8;--role:#2E9E6B;--danger:#E5484D;--safe:#2EB872;--gold:#F5C542;--shadow:0 10px 30px rgba(36,33,43,.15);font-family:'Pretendard Variable',Pretendard,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box;word-break:keep-all;overflow-wrap:anywhere}body{margin:0;overscroll-behavior:none}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.13;background-image:radial-gradient(#77694c 0.5px,transparent 0.5px);background-size:5px 5px}button,input,select{font:inherit}button{border:0;cursor:pointer;touch-action:manipulation;user-select:none;color:inherit;font-size:clamp(22px,2.2vw,26px);font-weight:800;min-height:56px;padding:14px 24px;border-radius:20px;background:var(--white);box-shadow:0 4px 0 #24212B14;transition:transform .15s,background .2s,box-shadow .2s}button:active{transform:scale(.96);box-shadow:0 1px 0 #24212B14}button:disabled{opacity:.45;cursor:default;transform:none}button:hover{background:#EDE7DC}button:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid #DCA424;outline-offset:5px}button.primary{background:var(--role);color:white;box-shadow:0 5px 0 color-mix(in srgb,var(--role),#24212B 28%)}button.primary:hover{filter:brightness(1.08)}button.danger-button{background:var(--danger);color:white}h1,h2,h3,p{margin:0}h1,h2,.display{font-family:'Black Han Sans','Pretendard Variable','Malgun Gothic',sans-serif;font-weight:900;line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(48px,5vw,64px)}h2{font-size:clamp(34px,4vw,48px)}h3{font-size:28px}p{font-size:clamp(22px,2.2vw,28px);line-height:1.4}svg{display:block;width:100%;height:100%;overflow:visible}.icon-art{width:34px;height:34px;flex:none}.icon-button{width:60px;height:60px;padding:13px;display:inline-grid;place-items:center;position:relative;flex:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));animation:fade-in .28s ease}.screen-header{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.screen-header .header-title{display:flex;align-items:center;gap:18px}.eyebrow{font-size:16px;letter-spacing:.18em;font-weight:800;color:var(--soft)}.button-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.muted{color:var(--soft)}.counter{font-weight:900;white-space:nowrap}.pill{font-size:16px;font-weight:800;padding:7px 12px;border-radius:99px;background:var(--paper-dark);white-space:nowrap}.title-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#FFFDF8,transparent 65%)}.title-tools{position:absolute;top:24px;right:24px;display:flex;gap:12px}.title-logo{z-index:3;position:relative;font-size:clamp(66px,8vw,108px);text-align:center;line-height:.95;text-shadow:0 5px 0 var(--paper);letter-spacing:-.06em}.title-logo span{color:var(--role)}.title-subtitle{margin:23px 0 30px;font-size:clamp(24px,3vw,30px)}.title-start{width:min(390px,100%);min-height:74px;font-size:32px}.title-secondary{margin-top:20px;display:flex;gap:14px}.title-secondary button{display:flex;align-items:center;gap:10px;font-size:22px}.title-secondary .counter{font-size:18px;color:var(--soft)}.title-bottom{margin-top:28px;display:flex;align-items:center;gap:12px;color:var(--soft);font-size:16px;font-weight:700}.mini-building{width:72px;height:58px}.profile-screen,.roles-screen{display:flex;flex-direction:column;align-items:center;justify-content:center}.profile-form{width:min(760px,100%);text-align:center}.profile-form h1{margin-bottom:30px}.name-label{font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:18px;margin:22px 0 28px}.name-label input{width:min(280px,70%);border:0;border-bottom:4px solid var(--role);border-radius:16px 16px 0 0;background:var(--white);padding:15px;font-size:32px;color:var(--ink);text-align:center}.face-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0 35px}.face-button{padding:5px;border:4px solid transparent;overflow:hidden;background:var(--white);border-radius:24px}.face-button svg{border-radius:16px}.face-button[aria-pressed=true]{border-color:var(--role);box-shadow:0 0 0 5px #2E9E6B18;transform:translateY(-5px)}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1150px;width:100%;margin:22px auto}.role-card{padding:25px 20px;display:flex;flex-direction:column;align-items:center;gap:20px;border-radius:28px;background:var(--white);min-width:0;border-bottom:7px solid var(--role);box-shadow:var(--shadow);transition:transform .2s}.role-card:hover{transform:translateY(-7px);background:var(--white)}.role-card:active{transform:scale(.96)}.role-card .building-art{height:175px}.role-card h2{color:var(--role);font-size:clamp(32px,3.2vw,43px)}.role-card p{font-size:24px;font-weight:700}.role-card .term{font-size:20px;color:var(--soft)}.ending-dots{display:flex;gap:8px}.ending-dots i{display:block;width:11px;height:11px;border-radius:50%;background:var(--paper-dark)}.ending-dots i.found{background:var(--role)}.newspaper-screen{display:flex;align-items:center;justify-content:center}.newspaper{background:var(--white);padding:25px 36px;border-radius:6px;width:min(900px,100%);box-shadow:var(--shadow);position:relative;border-top:8px solid var(--ink);text-align:center;animation:paper-in .7s cubic-bezier(.2,.7,.2,1)}.newspaper.legend{border-color:var(--gold);background:#FFF9E5}.masthead{font-family:'Nanum Myeongjo',Georgia,'Batang',serif;font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:.1em;padding-bottom:12px;border-bottom:3px double var(--ink)}.paper-date{font-size:16px;color:var(--soft);margin:10px 0 14px;display:flex;justify-content:space-between;gap:12px}.newspaper h1{margin:12px auto;max-width:820px}.paper-story{font-size:24px;margin:12px 0}.learning-note{text-align:left;border:2px solid var(--ink);border-radius:14px;padding:14px 18px;display:grid;grid-template-columns:35px 1fr;column-gap:12px;margin:15px 0 22px}.learning-note strong{font-size:18px}.learning-note p{grid-column:2;font-size:22px;margin-top:5px}.new-badge{position:absolute;top:85px;right:25px;transform:rotate(12deg);color:var(--danger);border:4px solid var(--danger);padding:6px 11px;font-size:25px;font-weight:900;animation:stamp-in .45s}.intro-paper{animation:slide-in .5s ease-out}.intro-paper .intro-paper button{margin-top:18px;width:min(360px,100%)}
/* 게임은 고정된 네 행으로 구성하며, 남은 공간에 카드가 맞춰집니다. */
.game-screen{height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:112px 108px minmax(0,1fr) 72px;gap:12px;padding:calc(18px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:linear-gradient(180deg,color-mix(in srgb,var(--role) 9%,var(--paper)),var(--paper) 60%);position:relative;isolation:isolate;user-select:none}.gauges{display:flex;align-items:center;justify-content:center;gap:clamp(28px,6vw,80px);position:relative}.gauge{width:78px;height:108px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.gauge-art{width:70px;height:70px;filter:drop-shadow(0 3px 0 #24212B09)}.gauge-fill{transform-origin:center bottom;transition:transform .5s ease,fill .3s}.gauge-label{font-weight:800;font-size:18px}.gauge-dot{position:absolute;top:-5px;left:calc(50% - var(--dot-size,0px)/2);width:var(--dot-size,0);height:var(--dot-size,0);background:var(--ink);border-radius:50%;opacity:0;transition:opacity .12s;z-index:2}.gauge-dot.visible{opacity:1}.gauge.danger .gauge-art{animation:danger-pulse .7s infinite}.gauge-spark{position:absolute;top:30px;right:-8px;font-size:30px;font-weight:900;animation:sparkle .6s forwards;color:var(--safe)}.gauge-spark.negative{color:var(--danger)}.gauge.death{animation:shake .5s 2}.speech{background:var(--white);border-radius:24px;box-shadow:0 5px 0 #24212B08;display:flex;align-items:center;justify-content:center;position:relative;width:min(890px,100%);margin:auto;height:100%;padding:12px 26px;text-align:center;font-size:clamp(30px,3vw,36px);font-weight:800;line-height:1.35;letter-spacing:-.04em}.speech:after{content:'';position:absolute;bottom:-13px;left:calc(50% - 15px);border:15px solid transparent;border-bottom:0;border-top-color:var(--white)}.arena{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,310px) minmax(0,1fr);gap:clamp(22px,4vw,58px);align-items:center;justify-content:center;width:min(1080px,100%);margin:auto;height:100%;padding:6px 0}.character-card{width:auto;height:100%;max-height:430px;aspect-ratio:3/4;max-width:100%;justify-self:center;border:7px solid var(--white);background:var(--white);box-shadow:var(--shadow);border-radius:25px;display:flex;flex-direction:column;position:relative;touch-action:none;cursor:grab;transform-origin:50% 85%;will-change:transform;transition:transform .35s cubic-bezier(.2,1.3,.5,1),opacity .22s;outline:none}.character-card:active{cursor:grabbing}.character-card.dragging{transition:none}.character-card svg{flex:1;min-height:0;border-radius:17px 17px 10px 10px;overflow:hidden}.nameplate{flex:none;display:flex;flex-direction:column;gap:5px;align-items:center;padding:10px 2px 5px;min-height:66px}.character-name{font-size:24px;font-weight:900;letter-spacing:-.05em;white-space:nowrap}.group-chip{font-size:14px;font-weight:800;color:white;padding:3px 11px;border-radius:99px;background:var(--group)}.card-choice{position:absolute;left:10px;right:10px;top:14px;background:var(--white);padding:13px 8px;text-align:center;border-radius:12px;font-size:24px;font-weight:900;opacity:0;transform:translateY(-8px);transition:opacity .12s,transform .12s;z-index:2}.card-choice.visible{opacity:1;transform:none}.choice{font-size:clamp(24px,2.4vw,30px);min-height:88px;padding:22px 18px;border:3px solid transparent;border-radius:24px;display:flex;align-items:center;justify-content:center;gap:12px;line-height:1.25;box-shadow:0 5px 0 #24212B12;position:relative}.choice-arrow{font-size:21px;color:var(--role);flex:none}.choice.preview{border-color:var(--role);background:color-mix(in srgb,var(--role) 13%,var(--white));transform:scale(1.04)}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;width:min(1080px,100%);margin:auto}.term-progress{flex:1;max-width:640px;display:flex;align-items:center;gap:20px}.term-label{font-size:20px;font-weight:800;white-space:nowrap}.ticks{display:flex;gap:5px;flex:1}.ticks i{height:13px;flex:1;border-radius:4px;background:#24212B13}.ticks i.done{background:var(--role)}.ticks i.current{background:var(--role);opacity:.5}.footer-buttons{display:flex;gap:10px}.notebook-badge{position:absolute;top:3px;right:3px;width:13px;height:13px;border:3px solid var(--white);background:var(--gold);border-radius:50%}.card-enter{animation:card-in .3s cubic-bezier(.2,.8,.2,1)}
.overlay-backdrop{position:fixed;inset:0;background:#24212B70;backdrop-filter:blur(7px);z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .18s}.modal{background:var(--white);border-radius:28px;padding:30px;box-shadow:var(--shadow);width:min(650px,100%);max-height:calc(100dvh - 48px);overflow:auto;position:relative;text-align:center}.modal h2{margin-bottom:20px}.modal p{margin:15px 0 24px}.modal .button-row button{flex:1}.modal-close{position:absolute;top:14px;right:14px}.modal.with-close{padding-top:80px}.modal.settings{width:min(680px,100%)}.settings .setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 0;border-bottom:1px solid var(--paper-dark);font-size:24px;font-weight:800}.settings .setting-row button{font-size:22px}.settings .reset-button{margin-top:25px;color:var(--danger);font-size:22px}.power-modal{border-top:14px solid var(--role);background:var(--white);opacity:1;animation:power-in .25s ease-out}.power-modal .eyebrow{font-size:20px;letter-spacing:.06em}.power-backdrop{animation:none;backdrop-filter:none}.power-modal .building-art{width:155px;height:120px;margin:0 auto 12px}.power-modal h2{color:var(--role);font-size:clamp(40px,4vw,54px);margin:20px 0}.power-modal p{font-size:clamp(24px,2.8vw,28px);white-space:nowrap}.power-modal.flying{transform-origin:bottom right;animation:power-fly .4s forwards;pointer-events:none}.stamp-modal{background:var(--white);cursor:pointer;animation:shake .35s;max-width:800px}.rubber-stamp{display:inline-block;border:6px solid currentColor;color:var(--danger);padding:12px 25px;border-radius:10px;font-size:clamp(44px,6vw,70px);font-weight:900;transform:rotate(-9deg);margin:45px 0 58px;animation:stamp-in .4s}.rubber-stamp.nocheck{color:#54758A}.stamp-modal .meaning{color:var(--soft);font-size:22px;margin-bottom:8px}.tutorial-modal{padding-top:30px}.tutorial-art{height:210px;position:relative;margin:20px auto;max-width:360px;display:flex;justify-content:center;align-items:center;gap:20px}.tutorial-art>.icon-art{width:110px;height:110px}.tutorial-card{width:140px;height:180px;border-radius:20px;overflow:hidden;box-shadow:var(--shadow);transform:rotate(-10deg);animation:tutorial-swipe 2s infinite}.tutorial-hand{position:absolute;left:50%;bottom:0;animation:tutorial-swipe 2s infinite}.tutorial-hand .icon-art{width:80px;height:80px}.tutorial-dots{display:flex;gap:10px;justify-content:center;margin:22px 0}.tutorial-dots i{width:11px;height:11px;background:var(--paper-dark);border-radius:50%}.tutorial-dots i.active{background:var(--role)}.tutorial-skip{box-shadow:none;color:var(--soft);font-size:20px;margin-top:12px}.collection-screen{max-width:1320px;margin:auto}.tabs{display:flex;gap:12px;margin:20px 0 28px}.tabs button{flex:1;border-bottom:5px solid transparent}.tabs button[aria-selected=true]{border-color:var(--role);background:var(--white);color:var(--role)}.ending-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.ending-thumb{background:var(--white);padding:16px;min-height:240px;border-radius:8px;border-top:5px solid var(--ink);display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:var(--shadow)}.ending-thumb:hover{background:var(--white)}.thumb-masthead{font-family:'Nanum Myeongjo',Georgia,'Batang',serif;font-size:16px;padding-bottom:8px;border-bottom:1px solid var(--ink);width:100%}.ending-thumb h3{font-size:24px;line-height:1.3}.ending-thumb .prop-art{height:70px;width:70px;margin:auto}.ending-thumb.locked{cursor:default;box-shadow:0 3px 0 #24212B09;background:#FFFDF899}.big-question{font-size:70px;font-family:Georgia,serif;color:#B1A99B}.ending-hint{font-size:21px;color:var(--soft);margin:auto}.notebook-diagram{background:var(--white);border-radius:24px;padding:22px;margin:20px 0 28px}.notebook-diagram h2{font-size:30px;text-align:center}.checks-art{max-width:900px;max-height:440px;margin:auto}.check-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:15px}.check-row{display:flex;gap:12px;align-items:center;padding:12px;background:var(--paper);border-radius:12px;font-size:20px;font-weight:700}.check-row span{font-size:18px;color:var(--soft);white-space:nowrap}.power-sections{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.power-section h2{color:var(--role);font-size:28px;margin:0 0 18px;display:flex;align-items:center;gap:10px}.power-section h2 .building-art{height:48px;width:60px}.power-entry{border-radius:20px;background:var(--white);border-top:5px solid var(--role);padding:18px;margin-bottom:16px;min-height:144px}.power-entry h3{color:var(--role);font-size:25px;margin-bottom:10px}.power-entry p{font-size:22px}.power-entry.locked{min-height:115px;display:grid;place-items:center;color:#AAA195;background:#FFFDF880;font-size:44px}.power-entry.fresh{animation:glow 1.5s 1}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.confetti i{position:absolute;top:-30px;width:12px;height:20px;border-radius:2px;animation:confetti-fall 3.2s ease-in forwards}.debug-panel{position:fixed;right:8px;bottom:8px;z-index:50;background:#24212BEB;color:white;font-size:12px;border-radius:10px;padding:8px;max-width:310px;box-shadow:var(--shadow)}.debug-panel summary{cursor:pointer;padding:5px;font-size:12px}.debug-content{display:flex;flex-direction:column;gap:7px;padding-top:6px}.debug-panel button,.debug-panel input,.debug-panel select{font-size:12px;min-height:28px;padding:5px;border-radius:6px;box-shadow:none}.debug-gauges{display:flex;gap:5px}.debug-gauges label{width:58px}.debug-gauges input{width:100%}.debug-panel select{max-width:290px}
@media(orientation:portrait){.role-grid{grid-template-columns:1fr;max-width:600px}.role-card{display:grid;grid-template-columns:120px 1fr;gap:12px 20px;text-align:left;padding:20px}.role-card .building-art{grid-row:1/5;width:120px;height:115px}.role-card h2{font-size:34px}.role-card p{font-size:24px}.role-card .ending-dots{justify-content:start}.roles-screen{justify-content:center}.game-screen{grid-template-rows:116px 112px minmax(0,1fr) 88px;gap:18px;padding-top:24px;padding-bottom:18px}.arena{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) 82px;gap:24px 14px;max-width:700px}.character-card{grid-column:1/3;grid-row:1;max-height:620px}.choice{grid-row:2;min-height:82px;height:100%;font-size:26px;padding:15px 12px}.choice-left{grid-column:1}.choice-right{grid-column:2}.term-progress{flex-direction:column;align-items:stretch;gap:12px}.term-label{font-size:20px}.game-footer{width:100%}.speech{font-size:32px}.ending-grid{grid-template-columns:repeat(2,1fr)}.power-sections{grid-template-columns:repeat(2,1fr)}.newspaper-screen{align-items:center}.title-logo{font-size:96px}.check-list{grid-template-columns:1fr}}
@media(max-width:600px){.screen{padding:20px 16px}.screen-header{margin-bottom:20px;gap:10px}.screen-header .header-title{gap:12px}.screen-header h1{font-size:34px}.screen-header .counter{font-size:22px}.icon-button{width:56px;height:56px;padding:12px}.title-tools{right:16px;top:16px;gap:8px}.title-screen{padding-top:75px}.title-logo{font-size:70px}.title-subtitle{font-size:24px;margin:23px 0}.title-start{min-height:70px}.title-secondary{width:100%;gap:10px}.title-secondary button{flex:1;flex-direction:column;gap:4px;font-size:22px;padding:12px 6px}.title-bottom{margin-top:24px;font-size:14px}.profile-form h1{font-size:42px}.face-grid{gap:10px;grid-template-columns:repeat(2,1fr);max-width:340px;margin:20px auto 28px}.face-button{max-height:190px}.profile-screen{justify-content:flex-start}.profile-form{margin-top:30px}.name-label{margin:20px 0}.role-card{grid-template-columns:94px 1fr;gap:10px 14px}.role-card .building-art{width:94px;height:110px}.role-card h2{font-size:30px}.role-card p{font-size:22px}.role-grid{margin-top:0;gap:16px}.roles-screen .screen-header h1{font-size:32px}.newspaper{padding:18px 16px}.masthead{font-size:30px}.newspaper h1{font-size:46px}.paper-date{font-size:14px}.paper-story{font-size:22px}.learning-note{padding:12px;grid-template-columns:28px 1fr;gap:8px}.learning-note .icon-art{width:28px;height:28px}.learning-note p{font-size:22px}.newspaper .button-row{gap:10px}.newspaper .button-row button{width:100%;min-height:56px}.new-badge{top:65px;right:12px;font-size:18px;border-width:3px}.intro-paper h1{font-size:43px}.intro-paper .game-screen{padding:calc(14px + env(safe-area-inset-top)) 12px calc(10px + env(safe-area-inset-bottom));grid-template-rows:100px 104px minmax(0,1fr) 68px;gap:12px}.gauges{gap:24px}.gauge{width:65px;height:96px;gap:4px}.gauge-art{width:60px;height:60px}.gauge-label{font-size:16px}.speech{padding:12px 10px;font-size:22px;letter-spacing:-.045em;line-height:1.4;border-radius:20px}.arena{grid-template-rows:minmax(0,1fr) 80px;gap:18px 10px;padding:3px 0}.character-card{border-width:6px;max-height:430px;border-radius:22px}.nameplate{min-height:62px;padding:7px 1px 3px;gap:4px}.character-name{font-size:22px}.choice{font-size:24px;min-height:80px;gap:6px;padding:10px 8px;border-radius:20px}.choice-arrow{font-size:15px}.game-footer{gap:12px}.term-progress{gap:8px}.term-label{font-size:16px}.ticks{gap:3px}.ticks i{height:9px;border-radius:3px}.footer-buttons{gap:8px}.card-choice{font-size:22px;padding:10px 4px;left:5px;right:5px}.modal{padding:24px 20px;max-height:calc(100dvh - 32px)}.overlay-backdrop{padding:16px}.modal.with-close{padding-top:80px}.modal h2{font-size:34px}.power-modal h2{font-size:38px}.power-modal p{font-size:24px}.settings .setting-row{font-size:22px;flex-wrap:wrap}.tabs{gap:8px}.tabs button{font-size:20px;padding:12px 5px}.ending-grid{gap:12px}.ending-thumb{padding:12px;min-height:220px}.ending-thumb h3{font-size:22px}.ending-hint{font-size:20px}.notebook-diagram{padding:15px 10px}.notebook-diagram h2{font-size:26px}.checks-art{margin:15px auto}.check-row{font-size:18px;gap:8px}.check-row span{font-size:16px}.power-sections{grid-template-columns:1fr}.power-section h2{font-size:28px}.power-entry p{font-size:22px}.debug-panel{max-width:260px}.debug-panel select{max-width:240px}}
@media(orientation:landscape) and (max-height:650px){.game-screen{grid-template-rows:92px 84px minmax(0,1fr) 56px;gap:8px;padding-top:10px;padding-bottom:8px}.gauge{height:88px}.gauge-art{height:56px;width:56px}.speech{font-size:26px}.choice{min-height:70px;font-size:24px;padding:12px}.nameplate{min-height:50px;padding:4px}.character-name{font-size:20px}.group-chip{font-size:12px}.game-footer .icon-button{width:56px;height:56px}.title-screen{padding:20px}.title-logo{font-size:64px}.title-subtitle{margin:16px 0}.title-start{min-height:58px}.title-bottom{display:none}.title-secondary{margin-top:12px}.role-card{gap:12px;padding:15px}.role-card .building-art{height:115px}.role-card h2{font-size:30px}.newspaper-screen{align-items:center}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes float{50%{transform:translateY(-28px) rotate(3deg)}}@keyframes float-left{50%{transform:translate(-100px,8px) rotate(-22deg)}}@keyframes float-right{50%{transform:translate(100px,8px) rotate(22deg)}}@keyframes paper-in{from{opacity:0;transform:rotate(-360deg) scale(.12)}to{opacity:1;transform:none}}@keyframes slide-in{from{opacity:0;transform:translateY(80px) rotate(-4deg)}to{opacity:1;transform:none}}@keyframes card-in{from{opacity:0;transform:rotateY(80deg) scale(.9)}to{opacity:1;transform:none}}@keyframes danger-pulse{50%{filter:drop-shadow(0 0 9px #E5484D);opacity:.65}}@keyframes shake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}@keyframes sparkle{to{opacity:0;transform:translateY(-40px) scale(1.4)}}@keyframes stamp-in{from{opacity:0;transform:scale(2.5) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-9deg)}}@keyframes power-fly{to{transform:translate(25vw,30vh) scale(.05);opacity:0}}@keyframes tutorial-swipe{50%{transform:translateX(40px) rotate(12deg)}}@keyframes glow{50%{box-shadow:0 0 0 6px #F5C542,0 0 32px #F5C54288}}@keyframes confetti-fall{to{transform:translateY(110dvh) rotate(650deg);opacity:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.character-card{will-change:auto}.newspaper,.rubber-stamp,.stamp-modal,.power-modal{animation:fade-in .01ms!important}}
h1[tabindex="-1"]:focus{outline:none}
.title-subtitle{margin:20px 0 24px}.title-bottom{margin-top:16px}
.new-badge{top:-18px;right:-10px;background:var(--white)}
.settings .setting-row button{display:inline-flex;align-items:center;gap:10px}
.paper-detail{width:min(960px,100%);padding:80px 20px 20px}.paper-detail .newspaper{box-shadow:none}
.power-modal.flying{transform-origin:center}
@keyframes power-fly{to{transform:translate(var(--fly-x,25vw),var(--fly-y,30vh)) scale(.05);opacity:0}}
@media(max-width:600px){.title-screen{padding-top:80px}.new-badge{top:-16px;right:-6px}.paper-detail{padding:75px 10px 10px}}
.gauge-full{transition:filter .3s}.gauge.danger .gauge-full{filter:sepia(.7) saturate(3.2) hue-rotate(-28deg) brightness(.95)}
.power-entry.locked{position:relative;overflow:hidden}.power-entry.locked:before{content:'';width:70px;height:80px;border-radius:12px;position:absolute;transform:rotate(-12deg);background:#24212B05;border-bottom:10px solid #24212B06}

/* 얼굴과 로고 사이에 여백을 확보하고 신문 무대는 모든 역할에서 공유합니다. */
.fan{width:340px;height:clamp(175px,24vh,235px);position:relative;margin:0 0 22px;flex:none}
.fan-card{position:absolute;left:100px;top:0;width:140px;height:175px;border:6px solid var(--white);border-radius:20px;overflow:hidden;background:var(--white);box-shadow:0 5px 0 #24212B14}
.fan-card:first-child{transform:translate(-80px,12px) rotate(-16deg)}
.fan-card:nth-child(2){z-index:2;transform:translateY(-6px)}
.fan-card:last-child{transform:translate(80px,12px) rotate(16deg)}
.title-logo{font-size:clamp(70px,10vh,96px);text-shadow:none}
.title-subtitle{margin:14px 0 18px}.title-start{min-height:66px}.title-secondary{margin-top:16px}.title-bottom{margin-top:16px}.mini-building{height:46px;width:60px}
.paper-scene{height:286px;max-width:676px;margin:14px auto;position:relative;overflow:hidden;background:transparent}
.paper-scene:after{content:'';position:absolute;left:5%;right:5%;bottom:10px;height:3px;background:#B8AC96}
.paper-scene>.building-art{position:absolute;width:90%;height:260px;left:5%;bottom:20px;opacity:.24}
.paper-scene>.portrait-art{position:absolute;width:147px;height:234px;left:calc(50% - 73.5px);bottom:12px}
.paper-scene>.prop-art{position:absolute;width:99px;height:99px;left:calc(50% + 91px);bottom:12px;filter:none}
.paper-date{font-size:20px}.intro-paper .paper-scene{margin:18px auto}
.gauge-outline *{fill:none}
.power-meter{height:70px;width:44px;flex:none;background:linear-gradient(to top,#E5484D 0% 15%,#C8E5CB 15% 85%,#E5484D 85% 100%);border:3px solid #746B5E;border-radius:24px;position:relative;color:var(--ink)}
.power-marker{position:absolute;left:-3px;right:-3px;height:6px;border-radius:3px;background:currentColor;bottom:calc(var(--value)*1%);transform:translateY(50%);transition:bottom .5s ease;z-index:1}
.power-marker:after{content:'';position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:9px solid currentColor}
.gauge.danger .power-meter{border-color:var(--danger);animation:power-danger .7s infinite}.gauge.danger .power-marker{color:var(--danger)}
.tutorial-power{width:80px;height:190px;border-width:5px;border-radius:44px;animation:tutorial-danger 3s infinite}
.tutorial-power .power-marker{left:-5px;right:-5px;height:9px;animation:tutorial-marker 3s infinite}
.tutorial-power .power-marker:after{border-top-width:9px;border-bottom-width:9px;border-right-width:13px}
@keyframes power-in{from{transform:translateY(18px) scale(.97)}to{transform:none}}
@keyframes power-danger{50%{border-color:#FFB4AC}}
@keyframes tutorial-marker{0%,15%,100%{bottom:50%;color:var(--ink)}65%,85%{bottom:100%;color:var(--danger)}}
@keyframes tutorial-danger{0%,45%,100%{border-color:#746B5E}65%,85%{border-color:var(--danger)}75%{border-color:#FFB4AC}}
@media(max-width:600px){.fan{height:190px;width:320px}.fan-card{left:90px}.title-logo{font-size:70px}.paper-scene{height:260px}.paper-scene>.building-art{height:234px}.paper-scene>.portrait-art{height:208px;width:130px;left:calc(50% - 65px)}.paper-scene>.prop-art{width:83px;height:83px;left:calc(50% + 78px)}.paper-date{font-size:18px}.power-meter{height:60px;width:40px}.tutorial-power{height:190px;width:80px}}
@media(orientation:landscape) and (max-height:650px){.fan{height:135px;margin-bottom:10px}.fan-card{width:100px;height:125px;left:120px}.power-meter{height:56px}.tutorial-power{height:190px}}
@media(prefers-reduced-motion:reduce){.tutorial-power{border-color:var(--danger)}.tutorial-power .power-marker{bottom:100%;color:var(--danger)}}

/* 꽃가루는 불투명한 신문 뒤에서만 보입니다. */
.newspaper-screen{position:relative;z-index:1}
.title-home{position:absolute;top:max(24px,env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));color:var(--ink);background:var(--white);border-radius:20px;box-shadow:0 4px 0 #24212B14;touch-action:manipulation;transition:transform .15s}
.title-home:hover{background:#EDE7DC}.title-home:active{transform:scale(.96)}.title-home:focus-visible{outline:4px solid #DCA424;outline-offset:5px}
@media(orientation:portrait) and (min-width:601px){.paper-scene{height:clamp(286px,32dvh,410px)}.paper-scene>.building-art{height:calc(100% - 26px)}.paper-scene>.portrait-art{height:82%;width:auto;aspect-ratio:147/234;left:50%;transform:translateX(-50%)}.paper-scene>.prop-art{left:calc(50% + 110px)}}
@media(max-width:600px){.title-home{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left))}}
@media(orientation:landscape) and (min-height:651px){
  .newspaper{padding:18px 28px}
  .masthead{font-size:34px;padding-bottom:8px}
  .paper-date{font-size:18px;margin:8px 0}
  .newspaper h1{font-size:50px;margin:8px auto}
  .paper-story{font-size:22px;margin:8px 0}
  .learning-note{padding:10px 14px;margin:10px 0 14px}
  .learning-note p{font-size:20px;line-height:1.3}
  .newspaper .button-row button{font-size:22px;padding:12px 20px}
}
@media(max-width:600px){
  .newspaper{padding:12px 16px}
  .masthead{font-size:28px}
  .paper-date{font-size:16px;margin:8px 0}
  .newspaper:not(.intro-paper) .paper-scene{margin:8px auto}
  .newspaper h1{font-size:36px;margin:8px auto}
  .paper-story{font-size:20px;margin:8px 0}
  .learning-note{padding:10px;margin:8px 0 10px}
  .learning-note p{font-size:20px;line-height:1.3}
  .newspaper .button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .newspaper .button-row .primary{grid-column:1/-1}
  .newspaper .button-row button{font-size:20px;padding:12px 8px}
}
.rubber-stamp{animation-name:rubber-stamp-in}
@keyframes rubber-stamp-in{from{opacity:0;transform:scale(.9) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(-9deg)}}

/* 공용 구아슈: SVG는 그림이 도착할 때까지 같은 자리에 남깁니다. */
.paint{position:relative;display:block;width:100%;height:100%;overflow:hidden;isolation:isolate}
.paint-fallback{display:block;width:100%;height:100%;transition-property:none}
.paint>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition-property:none}
.paint-person>img{object-fit:cover;object-position:center top}
.paint.loaded>.paint-fallback{visibility:hidden}
.paint.loaded>img{opacity:1}

/* 보조 정보도 교실 기기에서 읽을 수 있는 크기를 유지합니다. */
.eyebrow,.pill,.group-chip{font-size:18px}
.title-secondary .counter,.thumb-masthead{font-size:20px}
.title-actions{display:flex;gap:12px;width:min(390px,100%)}.title-actions .title-start{flex:1;min-width:0}.title-actions:has([data-action=resume]) .title-start{font-size:26px;padding:14px 10px}
.character-card:focus-visible{outline:4px solid #DCA424;outline-offset:5px}
@media(max-width:600px){.gauge-label,.term-label,.paper-date,.check-row span{font-size:18px}}

.character-card>.paint{flex:1;min-height:0;border-radius:17px 17px 10px 10px}
.face-button>.paint{border-radius:16px}
.thumb-prop{width:70px;height:70px;margin:auto}
.paper-scene>.paint{position:absolute;inset:0}
.paper-scene>.paint>img{object-fit:cover}
.paper-scene .paint-fallback>.building-art{position:absolute;width:90%;height:calc(100% - 26px);left:5%;bottom:20px;opacity:.24}
.paper-scene .paint-fallback>.portrait-art{position:absolute;width:147px;height:234px;left:calc(50% - 73.5px);bottom:12px}
.paper-scene .paint-fallback>.prop-art{position:absolute;width:99px;height:99px;left:calc(50% + 91px);bottom:12px}
.paper-player,.paper-prop{display:none;position:absolute;bottom:12px}
.paper-scene>.paint.loaded~.paper-player,.paper-scene>.paint.loaded~.paper-prop{display:block}
.paper-player{left:50%;transform:translateX(-50%);height:82%;aspect-ratio:300/360;border:6px solid var(--white);border-radius:16px;box-shadow:var(--shadow);background:var(--white);overflow:hidden}
.paper-prop{left:74%;width:14%;height:auto;aspect-ratio:1}
.paper-scene:has(>.paint.loaded):after{display:none}
@media(max-width:600px){.paper-player{height:auto;width:52%}.paper-prop{width:21%;height:auto;aspect-ratio:1;left:77%}.paper-scene .paint-fallback>.portrait-art{height:208px;width:130px;left:calc(50% - 65px)}.paper-scene .paint-fallback>.prop-art{width:83px;height:83px;left:calc(50% + 78px)}}
@media(orientation:portrait) and (min-width:601px){.paper-scene .paint-fallback>.portrait-art{height:82%;width:auto;aspect-ratio:147/234;left:50%;transform:translateX(-50%)}.paper-scene .paint-fallback>.prop-art{left:calc(50% + 110px)}}
/* 권력 막대: 유리관 느낌 — 위아래 빨강(위험)·가운데 초록(안전), 눈금, 금색 화살표 */
.power-meter{background:linear-gradient(90deg,#FFFFFF55 0 22%,transparent 22% 60%,#00000014 60%),linear-gradient(to top,#E5484D 0 15%,#F2B8AE 15% 17%,#CDE9C7 17% 83%,#F2B8AE 83% 85%,#E5484D 85%);border:3px solid #5B4F43;box-shadow:inset 0 0 0 2px #FFFFFF66,0 3px 0 #24212B14}
.power-meter:before{content:'';position:absolute;inset:6px 30% 6px auto;width:2px;background:repeating-linear-gradient(to top,#5B4F4366 0 2px,transparent 2px 10%);border-radius:1px}
.power-marker{background:#2A2420;box-shadow:0 1px 0 #FFFFFF88}
.power-marker:after{border-right-color:#D6A332;filter:drop-shadow(0 1px 0 #5B4F43)}

/* 새 게이지 그림은 조금 크게(세부가 보이게) */
.gauge-art{width:82px;height:82px}
@media(max-width:600px){.gauge-art{width:64px;height:64px}}
@media(orientation:landscape) and (max-height:650px){.gauge-art{height:60px;width:60px}}

/* 이름과 모습: 평상복 상반신을 자연스럽게 보여 주는 동그란 버튼 */
.face-button{border-radius:50%!important;aspect-ratio:1;padding:4px;max-height:none}
.face-button>.paint,.face-button>svg{border-radius:50%!important;aspect-ratio:1;overflow:hidden}
.face-button .paint img,.face-button .paint svg,.face-button>svg{transform:none}
/* 권력 막대 높이를 다른 게이지 그림과 맞춤 */
.power-meter{height:82px}
@media(max-width:600px){.power-meter{height:64px}}
@media(orientation:landscape) and (max-height:650px){.power-meter{height:60px}}
.intro-paper .button-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.tutorial-art .tut-gauge .gauge-art{width:104px;height:104px}.tutorial-art .tut-gauge.danger{animation:danger-pulse 1s 1.6s infinite}
.title-guide{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;font-size:18px;font-weight:700;line-height:1.4;color:var(--ink);background:#FFFDF8;border:2px solid currentColor;border-radius:14px;text-decoration:none;touch-action:manipulation}.title-guide:hover{filter:brightness(.96)}.title-guide:focus-visible{outline:3px solid currentColor;outline-offset:4px}
