/* Neo둥근모: Korean/Latin retro font, SIL OFL 1.1. Used throughout the site. */
@font-face{font-family:FileIslandMenu;src:url('fonts/neodgm.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.login-landing :is(.brand,h1,h2,.ac-switch button,#acAuthSubmit,#acNameCheck,#acEmailCheck),.subject-menu :is(h1,.subject-eyebrow,.island-zone strong){font-family:FileIslandMenu,system-ui,sans-serif!important;font-weight:400!important;letter-spacing:0}
.login-landing .module-head h1,.subject-menu>h1{padding:12px 18px;border:5px double #d7c589;border-radius:3px;background:#111e2c;color:#fff;font-size:clamp(24px,5vw,36px);box-shadow:0 -4px 0 #ae326f,3px 5px 0 #08111b55;line-height:1.3}
.login-landing .file-island-welcome{border:5px double #b6ac77;border-radius:4px;box-shadow:0 5px 0 #102e3a}
.login-landing .file-island-welcome h2{font-size:24px}
.login-landing .ac-sec{border:4px double #9d9265;border-radius:4px;box-shadow:4px 5px 0 #102e3a33}
.login-landing .ac-form input{border-radius:4px}
.login-landing .ac-switch .tool-btn,.login-landing .ac-form :is(#acNameCheck,#acEmailCheck){border-radius:4px}
.login-landing #acAuthSubmit{border:4px double #e2cc8a;border-radius:4px;font-size:20px;box-shadow:3px 4px 0 #102e3a55}
.subject-menu .file-island-map{border:5px double #8b794b;border-radius:4px;box-shadow:0 -4px 0 #ae326f,4px 6px 0 #102e3a44}
.subject-menu .file-island-map .island-zone{border:4px double #ead49a;border-radius:4px;box-shadow:4px 5px 0 #07141d88}
html[data-hanq-theme="terminal"] body .login-landing .module-head h1,html[data-hanq-theme="terminal"] body .subject-menu>h1{background:#101a27!important;color:#fff!important;border-color:#d7c589!important}
html[data-hanq-theme="terminal"] body .login-landing :is(.ac-sec,.file-island-welcome){border:4px double #b3a575!important;border-radius:4px;box-shadow:4px 5px 0 #0005!important}
html[data-hanq-theme="terminal"] body .login-landing #acAuthSubmit{border:4px double #d7c589!important;border-radius:4px;box-shadow:3px 4px 0 #0007!important}
html[data-hanq-theme="terminal"] body .subject-menu .file-island-map{border-color:#d7c589!important;border-radius:4px;box-shadow:0 -4px 0 #ae326f,4px 6px 0 #0005!important}
html[data-hanq-theme="terminal"] body .subject-menu .file-island-map .island-zone{border:4px double #ead49a!important;border-radius:4px;box-shadow:4px 5px 0 #07141d88!important}
@media(max-width:600px){.login-landing .module-head h1,.subject-menu>h1{padding:10px 12px}.login-landing .file-island-welcome h2{font-size:22px}}

.login-landing .file-island-welcome{background:linear-gradient(180deg,#e5f5edeb 0%,#e5f5eddb 50%,#164c4166 100%),url("file-island-map.png") center 46%/cover no-repeat}.login-landing .island-sun{display:none}
html[data-hanq-theme="terminal"] body .login-landing .file-island-welcome{background:linear-gradient(180deg,#10283ee8 0%,#102b39c9 55%,#103529cc 100%),url("file-island-map.png") center 46%/cover no-repeat!important}
/* Digivice world: terrain stays outside an opaque, readable study screen. */
html[data-hanq-theme=terminal]{--red:#ff938b!important;--ink:#f4f7f5!important}
body::before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(#020909a8,#020909e8),url('file-island-map.png') 28% 56%/180% auto no-repeat;pointer-events:none}body[data-island=toeic]::before{background-position:center,85% 77%;background-size:auto,220% auto}body[data-island=history]::before{background-position:center,12% 53%;background-size:auto,210% auto}
html[data-hanq-theme=terminal] body .shell{max-width:1180px;margin:18px auto;padding:18px;box-sizing:border-box;background:#050a08ed!important;border:3px solid #527968!important;border-radius:26px;box-shadow:0 0 0 5px #102a24,0 0 0 8px #557868!important}
html[data-hanq-theme=terminal] body .digivice-screen{border-top:12px solid #50796c!important;box-shadow:0 0 0 4px #172e29,0 0 0 7px #82a18e,0 16px 70px #000!important}
html[data-hanq-theme=terminal] body :is(.o-memo-very,.very-important,.critical,.o-red){color:#ff938b!important}html[data-hanq-theme=terminal] body :is(.wrong,.is-wrong,.ac-err,[role=alert]){color:#ffaaa1!important}
.toeic-tab-icon{display:none}.toeic-menu{min-width:0}.toeic-menu #toeicSection,.toeic-menu #toeicNotesHost{min-width:0}
html[data-hanq-theme=terminal] body .subject-menu .file-island-map{overflow:hidden;border-radius:16px!important}
.subject-menu .file-island-map .island-region,.island-terrain{position:absolute;inset:0;width:100%;height:100%;border:0!important;padding:0;margin:0;background:transparent!important;cursor:pointer;border-radius:0!important;box-shadow:none!important}
.island-region::before,.island-terrain::before{content:'';position:absolute;inset:0;background:url('file-island-map.png') center/100% 100%;opacity:0;transition:transform .25s,opacity .25s,filter .25s}
.island-region-history{clip-path:polygon(4% 30%,44% 24%,50% 56%,39% 80%,9% 77%)}.island-region-toeic{clip-path:polygon(53% 29%,98% 24%,99% 76%,72% 94%,47% 71%)}.island-terrain-north{clip-path:polygon(13% 0,88% 0,80% 31%,49% 34%,42% 22%,8% 28%);pointer-events:none}.island-terrain-south{clip-path:polygon(16% 79%,40% 77%,48% 69%,69% 95%,55% 100%,20% 100%);pointer-events:none}
.island-region:hover::before,.island-region:focus-visible::before,.island-region:active::before{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}
html[data-hanq-theme=terminal] body .island-region-label{position:absolute;left:27%;top:54%;transform:translate(-50%,-50%);display:flex;flex-direction:column;min-width:120px;padding:12px 8px;border:3px double #b7e2c3;border-radius:8px;background:#0a251def!important;color:#fff!important;font-family:FileIslandMenu,system-ui,sans-serif;box-shadow:0 5px 0 #071914!important;pointer-events:auto}.island-region-toeic .island-region-label{left:76%!important;top:62%!important;background:#102d3fed!important}.island-region-label strong{font-size:23px;color:#fff!important}.island-region-label>span{font-size:12px;color:#d6efdf!important}.island-region:focus-visible .island-region-label{outline:4px solid #72ef9d;outline-offset:3px}
.adventure-entry{position:fixed;inset:0;z-index:100000;overflow:hidden;background:#05120f;pointer-events:all}.adventure-zoom{position:absolute;inset:0;background:url('file-island-map.png') center/cover no-repeat!important;animation:islandDive .48s ease-in forwards!important;transform-origin:27% 54%}.adventure-entry[data-destination=toeic] .adventure-zoom{transform-origin:76% 62%}.adventure-device{position:absolute;inset:24% 12%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:#071811e8!important;border:10px ridge #6b9e88;border-radius:35px;color:#fff;font-family:FileIslandMenu,system-ui,sans-serif;animation:deviceAppear .48s ease-out!important}.adventure-device>strong{color:#effff3!important;font-size:clamp(22px,4vw,40px)}.adventure-device>span{color:#72ef9d!important;letter-spacing:.2em}.adventure-arrival{animation:deviceAppear .45s ease-out!important}
@keyframes islandDive{to{transform:scale(3);filter:brightness(.35)}}@keyframes deviceAppear{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(max-width:700px), (max-width:1000px) and (pointer:coarse){html[data-hanq-theme=terminal] body .shell{margin:10px 10px 18px;padding:12px 10px;border-radius:20px;width:calc(100% - 20px)}.subject-menu{padding:10px 0}.toeic-mobile-nav{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))!important}.toeic-menu .toeic-sections{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;gap:0;margin:0;width:100%;padding:7px 8px calc(7px + env(safe-area-inset-bottom,0px));box-sizing:border-box;background:#07120ff5!important;border-top:2px solid #6c9980!important;box-shadow:0 -5px 24px #0008!important;backdrop-filter:blur(12px)}.toeic-menu .toeic-sections button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px;padding:5px 1px;border:0!important;border-radius:9px;font-size:12px;line-height:1.3;flex:1;min-width:0}.toeic-tab-icon{display:block;font-family:system-ui,sans-serif;font-size:23px;line-height:24px}.toeic-menu .toeic-sections button[aria-current]{background:#183629!important;box-shadow:inset 0 3px #72ef9d!important}.toeic-mobile-nav .request-notice{bottom:calc(83px + env(safe-area-inset-bottom,0px));max-height:30vh}.lc-playlist{padding:12px!important;margin:10px 0!important}.lc-playlist .lc-playback-controls{gap:7px}.lc-playlist .lc-playback-controls button{padding:9px 11px;font-size:14px}.lc-playlist .lc-track-list{height:270px}.island-region-label{min-width:94px!important;padding:9px 5px!important}.island-region-label strong{font-size:19px}.island-region-label>span{font-size:10px}.adventure-device{inset:30% 7%;border-width:7px}}
@media(prefers-reduced-motion:reduce){html[data-hanq-theme] body .adventure-entry,html[data-hanq-theme] body .adventure-zoom,html[data-hanq-theme] body .adventure-device,html[data-hanq-theme] body .adventure-arrival{animation:none!important;transition:none!important}.island-region::before{transition:none!important}}

html[data-hanq-theme=terminal] body .adventure-zoom{background:url("file-island-map.png") center/cover no-repeat!important}html[data-hanq-theme=terminal] body .adventure-device{background:#071811ed!important}html[data-hanq-theme=terminal] body .adventure-device span{color:#72ef9d!important}
html[data-hanq-theme=terminal] body .island-region-label{box-sizing:border-box;min-width:104px!important;min-height:68px;justify-content:center;text-align:center}
html[data-hanq-theme=terminal] body .island-terrain{background:transparent!important;pointer-events:none}html[data-hanq-theme=terminal] body .island-region-label strong{color:#fff!important}
html[data-hanq-theme=terminal] body .adventure-arrival{animation:screenArrive .45s ease-out!important}@keyframes screenArrive{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){html[data-hanq-theme=terminal] body .adventure-arrival{animation:none!important}}
html[data-hanq-theme=terminal] body :is(.shell,.tc,.lesson-frame) :is(.very-important,.critical,.o-red,.o-memo-very,.o-key){color:#ff938b!important}

/* Account controls stay in document flow; the theme label must not shrink into a vertical column. */
.ac-me .ac-company{grid-template-columns:minmax(0,1fr);gap:6px;padding:12px}.ac-me .ac-company h3{white-space:normal;word-break:keep-all}.ac-me .ac-company p{margin:0;overflow-wrap:anywhere}.topline #homeBrand{min-height:44px;max-width:100%;white-space:normal;font-size:16px}

/* Site-wide Neo둥근모. Self-hosted, SIL OFL 1.1; not an official Digimon font. */
html body,html body *{font-family:FileIslandMenu,"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif!important;font-synthesis:none;letter-spacing:normal}
html body{font-size:16px;line-height:1.8}
html body :is(.qtext,.qopt,.tn-original,.tn-translation,.tn-tips li,.tg p,.tg td,.textbook-semantic){line-height:1.85}
html body :is(button,input,textarea,select){line-height:1.5}
html body :is(.toeic-tab-icon){font-family:FileIslandMenu,system-ui,sans-serif!important}
html body .toeic-sections button{white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px), (max-width:1000px) and (pointer:coarse){html body .toeic-sections button{font-size:14px;min-height:56px}.tn .tn-page{gap:6px}.tn .tn-page button{padding-inline:10px}}
