/* Tactile controls, quiet geometry, no remote assets. */
:root{color:#21342e;background:#eef2ef;font-family:'Segoe UI','맑은 고딕',sans-serif}
body{background:radial-gradient(ellipse at 7% 20%,#e4ece3 0,transparent 45%),radial-gradient(ellipse at 100% 70%,#e8eee8 0,transparent 40%),#f3f5f1}
header{position:relative;background:rgba(255,255,255,.86);border-bottom:1px solid #fff;padding:23px max(5vw,24px);box-shadow:0 1px 0 #dde5dd,0 10px 35px #253b3005}
.brand{color:#244d3a;font-size:calc(21px * var(--text-scale,1));letter-spacing:2.2px;display:flex;align-items:center;gap:9px}
header>span{border-left:1px solid #dbe4dc;padding-left:24px;font-size:calc(11px * var(--text-scale,1))}
nav a{font-size:calc(12px * var(--text-scale,1));font-weight:600;padding:9px 0}nav a:last-of-type{padding:9px 15px;border:1px solid #dce5db;border-radius:10px;background:linear-gradient(#fff,#f5f8f2);box-shadow:0 2px 3px #1a382a05}
main{max-width:1150px;padding-top:35px;padding-bottom:42px}
.hero{background:radial-gradient(ellipse at 83% 50%,#365b47 0,transparent 50%),linear-gradient(125deg,#1b3028,#233e30 68%,#263e31);border-radius:25px;min-height:330px;display:grid;grid-template-columns:1.2fr 1fr;position:relative;overflow:hidden;padding:44px 46px;box-shadow:0 20px 40px -18px #152f3b65,inset 0 1px 0 #688a6d60;border:1px solid #314e3b}
.hero:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,#ffffff07 0,transparent 45%);border-radius:inherit;border:1px solid #ffffff0c}
.hero-copy{position:relative;z-index:2}.hero .eyebrow{color:#adbea8;font-size:calc(9px * var(--text-scale,1));letter-spacing:2.3px;display:flex;align-items:center;gap:8px}.mini-line{width:19px;height:1px;background:#bbd2aa}
.hero h1{font-size:calc(43px * var(--text-scale,1));line-height:1.3;color:#f8fbf3;letter-spacing:-2px;margin:20px 0 17px;font-weight:650}.hero h1 em{font-style:normal;color:#c8e4b1}.hero p{font-size:calc(12px * var(--text-scale,1));color:#b2c4b3;line-height:1.9;margin:0}
.hero-tags{display:flex;gap:8px;margin-top:25px}.hero-tags span{font-size:calc(9px * var(--text-scale,1));padding:7px 11px;border:1px solid #93b58935;border-radius:20px;color:#c2d6bb;background:#b6d1ae08}.hero-tags span:before{content:'·';color:#c8e4b1;margin-right:5px}
.hero-art{position:relative;min-height:250px;perspective:650px;isolation:isolate}.orbit{position:absolute;border:1px solid #a7c19c20;border-radius:50%;transform:rotateX(58deg) rotateZ(-22deg);inset:23px -35px}.orbit-two{inset:53px -1px;border-color:#a7c19c15}.art-base{position:absolute;width:230px;height:160px;left:50%;top:53%;transform:translate(-50%,-50%) rotateX(49deg) rotateZ(-27deg);border-radius:36px;background:linear-gradient(145deg,#5a786050,#142c1fcc);box-shadow:10px 20px 0 #10231980,12px 28px 18px #07190e66,inset 1px 2px 2px #b3d0a050;border:1px solid #789e7270}
.art-key{position:absolute;left:50%;top:42%;width:145px;height:145px;transform:translate(-50%,-50%) rotateX(23deg) rotateZ(-18deg);border-radius:41px;background:linear-gradient(140deg,#f1f7e7,#a2bc8a);box-shadow:5px 8px 0 #729366,8px 17px 0 #526f48,12px 28px 25px #09201477,inset 2px 2px 2px #fff,inset -3px -4px 6px #587b5155;display:grid;place-items:center;color:#365a3b;border:1px solid #d6e9c5}.art-key svg{width:64px;filter:drop-shadow(0 1px 0 #f9fff2)}
.art-chip{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);font-size:calc(8px * var(--text-scale,1));letter-spacing:2px;color:#b0c6a7;white-space:nowrap}.spark{position:absolute;width:5px;height:5px;border-radius:50%;background:#d8eebf;box-shadow:0 0 17px #d8eebf}.spark-a{top:45px;right:28px}.spark-b{bottom:50px;left:20px;width:3px;height:3px}
.dashboard-label{margin:32px 0 16px}.dashboard-label h2{font-size:calc(17px * var(--text-scale,1));margin:0}.count{font-size:calc(11px * var(--text-scale,1));color:#83917d;font-weight:400;margin-left:7px}.settings-link{color:#64775f;font-size:calc(12px * var(--text-scale,1));text-decoration:none}
.devices{gap:22px;grid-template-columns:1.13fr 1fr}.device{padding:24px 28px 16px;border-radius:22px;border:1px solid #fff;background:linear-gradient(135deg,#fff,#f8faf5);box-shadow:0 2px 2px #263d2704,0 13px 30px -14px #2a4b2b35,inset 0 0 0 1px #dce4d850;position:relative}
.card-top{font-size:calc(9px * var(--text-scale,1))}.badge{font-size:calc(10px * var(--text-scale,1));display:flex;align-items:center;gap:6px;padding:7px 10px;background:#eef1e9;color:#7b8672;border:1px solid #dfe6d9}.badge i{width:5px;height:5px;border-radius:50%;background:#a9b39f}.is-connected .badge{color:#386948;background:#eaf5e7}.is-connected .badge i{background:#6eaa5b;box-shadow:0 0 0 3px #72ab5f17}.device-number{font-family:monospace;color:#a2ac9d;letter-spacing:1px}
.device-center{padding:22px 0 17px}.orb-mount{position:relative;width:194px;height:194px;margin:0 auto;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#e6ebdf,#fff);box-shadow:inset 2px 3px 6px #293c2710,inset -2px -2px 6px #fff;border:1px solid #e2e8dc}
.orb-mount:after{content:'';position:absolute;inset:7px;border-radius:50%;border:1px solid #cbd8c650;pointer-events:none}.orb-halo{position:absolute;inset:20px;border-radius:50%;box-shadow:0 0 25px #91b27e00;transition:box-shadow .2s}.is-connected .orb-halo{box-shadow:0 0 25px #91b27e35}
.power-orb{position:relative;width:150px;height:150px;border-radius:50%;padding:41px;display:grid;place-items:center;border:1px solid #e6eddf;background:linear-gradient(145deg,#fff,#e3ead8);box-shadow:5px 9px 11px #556e4233,-5px -5px 12px #fff,inset 0 2px 2px #fff,inset 0 -5px 5px #8b9d7430;color:#4c6c42;transition:transform .15s,box-shadow .15s,color .15s}
.power-orb svg{width:61px;height:61px;filter:drop-shadow(0 1px 0 #fff)}.power-orb:disabled{opacity:1;color:#a4b19a;cursor:not-allowed}.power-orb:hover:not(:disabled){color:#305a28;background:linear-gradient(145deg,#fcfff7,#dbe9c9);box-shadow:5px 9px 15px #556e4240,-5px -5px 12px #fff,inset 0 2px 2px #fff,inset 0 -5px 5px #8b9d7440}.power-orb:active:not(:disabled){transform:translateY(4px);box-shadow:1px 3px 5px #556e4222,inset 2px 3px 7px #81966b2b}
.device-center h2{font-size:calc(25px * var(--text-scale,1));margin:19px 0 0;letter-spacing:-1px}.orb-caption{font-size:calc(11px * var(--text-scale,1))!important;color:#94a089!important;margin:7px 0 0!important}.device-bottom{padding:3px 16px;background:#edf1e770;border-radius:12px}.spec{padding:11px 0;font-size:calc(10px * var(--text-scale,1));border-color:#dce5d655}.spec:first-child{border:0}.spec span:last-child{color:#52674b}.spec code{font-size:calc(10px * var(--text-scale,1));color:#61725a}.device-footnote{text-align:center;font-size:calc(10px * var(--text-scale,1));color:#9aa591;margin:12px 0 0}
.guide{position:relative;overflow:hidden;padding:30px 32px 25px;border-radius:22px;background:linear-gradient(130deg,#e4ebdc,#edf2e6);border:1px solid #fff;box-shadow:0 12px 30px -18px #2a4b2b30,inset 0 0 0 1px #d6e0cd70}.guide-icon{position:absolute;right:27px;top:22px;color:#9bb08b;font-size:calc(31px * var(--text-scale,1));font-weight:200}.guide .eyebrow{font-size:calc(9px * var(--text-scale,1));margin:0 0 22px;color:#849576}.guide h2{font-size:calc(25px * var(--text-scale,1));line-height:1.45;color:#354d30;margin:0 0 10px;font-weight:600;letter-spacing:-1px}.guide-description{font-size:calc(11px * var(--text-scale,1));color:#8a9b7d;line-height:1.8}.guide ol{margin:23px 0 9px}.guide li{padding-bottom:17px;padding-left:34px}.guide li:before{font-size:calc(10px * var(--text-scale,1));color:#819472;width:23px;height:23px;background:#d4dfca;border:1px solid #e5eddc;display:grid;place-items:center;border-radius:7px;top:0;box-shadow:0 2px 3px #5f795011}.guide li b{font-size:calc(12px * var(--text-scale,1));font-weight:600;color:#4e6644}.guide li p{font-size:calc(10px * var(--text-scale,1));color:#8c9c80;line-height:1.6}.secondary{background:linear-gradient(#fafff3,#eff5e6);border:1px solid #fafef3;box-shadow:0 3px 5px #5c784515,inset 0 -1px 1px #98ab7b35;color:#526b42;font-size:calc(12px * var(--text-scale,1));border-radius:9px}.guide .secondary{width:100%;display:flex;justify-content:space-between;align-items:center}.text-link{display:block;text-align:center;font-size:calc(10px * var(--text-scale,1));margin-top:14px;color:#8b9a7e;text-decoration:none}
.history{padding:22px 28px 18px;border-radius:20px;border:1px solid #fff;box-shadow:0 8px 22px -18px #2a4b2b40;background:#ffffffb8;margin-top:22px}.history .eyebrow{font-size:calc(8px * var(--text-scale,1));letter-spacing:2px;margin:0 0 6px;color:#91a087}.history .section-head h2{font-size:calc(16px * var(--text-scale,1));margin:0}.refresh-button{font-size:calc(10px * var(--text-scale,1));color:#738568;background:#f2f5ed;border:1px solid #e4ebdd;border-radius:7px;padding:9px 12px;box-shadow:0 2px 3px #48633e05}.empty{margin-top:18px;padding:24px 0;color:#a4ae9b;font-size:calc(11px * var(--text-scale,1))}.history-footer{display:flex;justify-content:space-between;gap:12px;padding-top:15px;border-top:1px solid #e9eee3;color:#a1ad96;font-size:calc(9px * var(--text-scale,1))}.history-footer a{color:#819374;text-decoration:none}.job{font-size:calc(11px * var(--text-scale,1));color:#5a7150;padding:15px 0}
.auth{background:linear-gradient(140deg,#fff,#f7faf2);border:1px solid #fff;border-radius:24px;padding:38px;max-width:480px;box-shadow:0 20px 50px -20px #294d3140,inset 0 0 0 1px #dce7d640}.auth h1{font-size:calc(31px * var(--text-scale,1));line-height:1.4}.auth p{font-size:calc(12px * var(--text-scale,1))}.auth .eyebrow{font-size:calc(9px * var(--text-scale,1))}.primary{background:linear-gradient(#496d3b,#35582e);border:1px solid #345329;box-shadow:0 4px 9px #3b5c2b25,inset 0 1px 0 #71935980}.panel{border:1px solid #fff;box-shadow:0 10px 24px -18px #2a4b2b35;border-radius:18px}.flow span{background:linear-gradient(#fbfdf7,#e9f0e1);border:1px solid #fff;box-shadow:0 3px 4px #637b4f13;font-size:calc(11px * var(--text-scale,1))}.flow{gap:10px}.flow b{font-size:calc(12px * var(--text-scale,1))}footer{border-top:1px solid #dfe7d8;color:#a2ad98;letter-spacing:1px;font-size:calc(8px * var(--text-scale,1));background:#f3f6ee}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(max-width:800px){.hero{padding:34px 30px;grid-template-columns:1.4fr 1fr;min-height:300px}.hero h1{font-size:calc(34px * var(--text-scale,1))}.hero-art{transform:scale(.85);transform-origin:center}.devices{grid-template-columns:1fr 1fr}.device{padding:21px 19px}.guide{padding:26px 23px}.guide h2{font-size:calc(22px * var(--text-scale,1))}}
@media(max-width:600px){main{padding:20px 15px 30px}header{padding:16px 20px}.brand{font-size:calc(19px * var(--text-scale,1))}nav{gap:8px}nav a{font-size:calc(10px * var(--text-scale,1))}nav a:last-of-type{padding:6px 10px}nav .quiet{font-size:calc(10px * var(--text-scale,1))}.hero{grid-template-columns:1fr;padding:28px 26px;min-height:0;border-radius:21px}.hero h1{font-size:calc(34px * var(--text-scale,1));margin:18px 0 14px}.hero p{font-size:calc(11px * var(--text-scale,1))}.hero-art{position:absolute;right:-54px;bottom:10px;width:220px;height:180px;min-height:180px;transform:scale(.68);transform-origin:bottom right;opacity:.55}.hero-tags{margin-top:25px;position:relative;z-index:3}.hero-copy{z-index:2}.hero h1{position:relative;z-index:3}.hero .eyebrow{font-size:calc(8px * var(--text-scale,1))}.devices{grid-template-columns:1fr;gap:17px}.dashboard-label{margin:25px 2px 13px}.device{padding:22px 24px 17px}.orb-mount{width:186px;height:186px}.power-orb{width:145px;height:145px}.device-center{padding-top:20px}.guide{padding:28px}.guide h2{font-size:calc(24px * var(--text-scale,1))}.guide ol{margin-top:22px}.guide li{padding-bottom:18px}.history{padding:22px}.history-footer{flex-direction:column;gap:9px}.auth{padding:27px 24px;margin:22px auto}.auth h1{font-size:calc(27px * var(--text-scale,1))}.settings-link{font-size:calc(11px * var(--text-scale,1))}.panel{padding:22px}h1{font-size:calc(31px * var(--text-scale,1))}footer{padding:22px}.guide .secondary{padding:15px}}
@media print{body{background:white}.panel,.history{box-shadow:none}.hero{background:white;color:black}.hero h1{color:black}.hero-art{display:none}nav{display:none}}
/* Tactile top navigation */
header nav{gap:9px;flex-wrap:wrap}header nav a,header nav a:last-of-type,header nav .quiet{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:10px 16px;border:1px solid #fff;border-bottom-color:#d7e2cd;border-right-color:#dce6d4;border-radius:11px;background:linear-gradient(145deg,#ffffff,#ecf2e6);box-shadow:3px 4px 7px #45613b18,-2px -2px 5px #ffffff,inset 0 1px 1px #ffffff;color:#607452;font-size:calc(11px * var(--text-scale,1));font-weight:600;text-decoration:none;white-space:nowrap;transition:box-shadow .15s,transform .15s,background .15s}header nav a:hover,header nav .quiet:hover{background:linear-gradient(145deg,#ffffff,#e3edd8);color:#3c6032;box-shadow:3px 5px 9px #45613b22,-2px -2px 5px #ffffff,inset 0 1px 1px #fff}header nav a:active,header nav .quiet:active{transform:translateY(2px);box-shadow:inset 2px 3px 5px #5c784520,inset -2px -2px 4px #fff}header nav a[aria-current=page]{background:linear-gradient(145deg,#e6eedc,#f5f9ed);border-color:#d8e4cb;color:#38592c;box-shadow:inset 2px 3px 5px #5b76451f,inset -2px -2px 4px #fff;transform:translateY(1px)}header nav .quiet{color:#8a9681;background:linear-gradient(145deg,#fff,#f2f5ed)}@media(max-width:600px){header nav{gap:7px;justify-content:space-between;margin-top:12px}header nav a,header nav a:last-of-type,header nav .quiet{min-height:38px;padding:9px 11px;font-size:calc(10px * var(--text-scale,1));border-radius:9px;box-shadow:2px 3px 5px #45613b18,-1px -1px 3px #fff}header nav a[aria-current=page]{box-shadow:inset 2px 2px 4px #5b76451f,inset -2px -2px 3px #fff}}

:root{--text-scale:1.24}header{flex-wrap:wrap}header nav{max-width:100%}h1,h2,p,li,label{word-break:keep-all;overflow-wrap:break-word}button,a,input,textarea{line-height:1.5}.spec{gap:12px}.card-top{gap:10px;flex-wrap:wrap}pre,code{overflow-wrap:anywhere}@media(min-width:601px) and (max-width:1050px){header>span{display:none}header nav{gap:7px}header nav a,header nav a:last-of-type,header nav .quiet{padding-left:12px;padding-right:12px}}@media(max-width:600px){:root{--text-scale:1.13}header nav{gap:6px}header nav a,header nav a:last-of-type,header nav .quiet{padding-left:9px;padding-right:9px;min-height:42px}.spec{flex-wrap:wrap}.hero h1{letter-spacing:-1.5px}}
/* Readability: stronger Korean text, useful contrast, comfortable helper copy. */body{font-weight:500}p,label,input,textarea,.steps li{font-weight:600;color:#455b48}.small,.orb-caption,.device-footnote,.guide-description,.guide li p,.text-link,.empty,.history-footer,.spec,.spec code,.device-number{font-weight:600!important;color:#5d6f54!important}.small,.orb-caption,.device-footnote,.guide-description,.guide li p,.text-link,.empty,.history-footer,.spec,.spec code,.device-number{font-size:max(12px,calc(11px * var(--text-scale,1)))!important}.eyebrow{font-weight:700;font-size:max(11px,calc(10px * var(--text-scale,1)))}.hero p{color:#d0ddc9}.hero .eyebrow{color:#c3d6b7}.guide h2,h1,h2{font-weight:700}.table-wrap td,.table-wrap th{font-weight:600}.error{font-weight:650}.auth .text-link{padding:14px 0}

.remote-access[aria-disabled="true"]{opacity:.55;cursor:wait}dialog{max-width:560px;width:calc(100% - 48px);border:1px solid #cbd5e1;border-radius:24px;padding:28px;color:#10243b;box-shadow:0 28px 90px #10243b55}dialog::backdrop{background:#10243b88}dialog .secondary{margin:8px 0}
.remote-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.remote-actions form{margin:0}.remote-display{background:#101c2d;border:1px solid #30465e;border-radius:20px;box-shadow:0 14px 35px #14243b26;overflow:hidden;min-height:220px;display:flex;align-items:center;justify-content:center;margin:22px 0;color:#f5f8ff}.remote-display img{display:block;width:100%;height:auto;touch-action:none;outline:none}.remote-display img[hidden]{display:none}.remote-display img:focus-visible{outline:3px solid #61c1ff;outline-offset:-3px}.remote-display:fullscreen{border-radius:0;overflow:auto;align-items:flex-start}.remote-display:fullscreen img{max-height:100vh;width:auto;max-width:100%;object-fit:contain}#remote-placeholder{padding:42px 24px;text-align:center;font-weight:700}#remote-feedback{padding:14px 18px;background:#e9f2fc;border-radius:14px;font-weight:700;color:#234469}.remote-toolbar p{margin-bottom:0}@media(max-width:640px){.remote-actions{gap:8px}.remote-actions button,.remote-actions a{font-size:15px;min-height:44px}.remote-display{min-height:170px;border-radius:12px}}
